node.js - online - ¿Cómo detectar cuándo se está ejecutando browserify?
node js browser (3)
Encontré la respuesta:
if (typeof window === ''undefined'') {
var request = require(''request'');
} else {
var request = require(''browser-request'');
}
¡Superagent también se ve como una muy buena alternativa!
Tengo una biblioteca que quiero usar tanto en el lado del cliente como en el del servidor. Sin embargo, debido a que la request
no es compatible con browserify, al compilar con browserify, necesito usar una biblioteca diferente llamada browser-request
if (inNodejsRuntime) {
var request = require(''request'');
} else if (isBrowserifyRuntime) {
var request = require(''browser-request'');
}
¿Cómo hago para detectar cuándo se está ejecutando la navegación cuando está dentro del nodo?
La respuesta aceptada es correcta. Pero si llegó aquí buscando en Google ''detectar browserify'' y desea una respuesta más general, browserify transformará automáticamente el process
global provisto por el nodo. Puedes usar:
process.browser
Lo que será true
en el navegador, undefined
en nodo.
Si solo está haciendo un simple intercambio de módulos con API compatibles, debe usar el campo del navegador en package.json. Así que para tu ejemplo, solo haz
var request = require(''request'')
como antes y luego en el package.json ponemos:
{
"browser": {
"request": "browser-request"
}
}
De esta manera, en el navegador obtendrá una solicitud de navegador en lugar de una solicitud cuando la require(''request'')
.
Lo que no debe hacer es requerir ambos módulos con un control de tiempo de ejecución para detectar la presencia de una window
o alguna propiedad similar. Esto se debe a que obtendrá una solicitud de navegador Y una solicitud agrupada en su código de interfaz, incluso si solo usa la solicitud de navegador, lo que resulta en un tamaño de archivo inflado innecesariamente.