Estoy tratando de seguir un tutorial sobre NodeJs. No creo que me haya perdido nada, pero cada vez que llamo process.env.NODE_ENV
al único valor que obtengo no está definido. Según mi investigación, el valor predeterminado debería ser 'desarrollo'. ¿Cómo se establece dinámicamente este valor y dónde se establece inicialmente?
javascript
node.js
basheps
fuente
fuente
heroku config:set NODE_ENV="production"
Respuestas:
process.env es una referencia a su entorno, por lo que debe establecer la variable allí.
Para establecer una variable de entorno en Windows :
en OS X o Linux :
fuente
export NODE_ENV=development
en mi terminal Mac antes de hacer unareact-native run-ios
desde la misma terminal. Al depurar, el valor deprocess.env.NODE_ENV
no está definido.consejos
en
package.json
:en
app.js
:Entonces, esto puede ser mejor:
o
fuente
"start": "set NODE_ENV=dev&& node app.js"
console.log(process.env.NODE_ENV.length)
// 4 (incluido un espacio al final)console.log(('' + process.env.NODE_ENV).trim() === 'dev') // true
ya que no arrojará un error incluso si process.env.NODE_ENV no está definido.Para las personas que usan * nix (Linux, OS X, etc.), no hay razón para hacerlo a través de un segundo comando de exportación, puede encadenarlo como parte del comando de invocación:
Más fácil, no? :)
fuente
Nos encontramos con este problema cuando trabajamos con el nodo en Windows.
En lugar de exigir a cualquiera que intente ejecutar la aplicación que establezca estas variables, proporcionamos un respaldo dentro de la aplicación.
En un entorno de producción, lo definiríamos según los métodos habituales (SET / export).
fuente
Puede usar el paquete npm cross-env . Se encargará de recortar la variable de entorno y también se asegurará de que funcione en diferentes plataformas.
En la raíz del proyecto, ejecute:
Luego, en su package.json, en scripts, agregue:
Luego, en su terminal, en la raíz del proyecto, inicie su aplicación ejecutando:
La variable de entorno estará disponible en su aplicación como
process.env.NODE_ENV
, por lo que podría hacer algo como:fuente
en package.json tenemos que configurar como a continuación (funciona en Linux y Mac OS)
lo importante es "exportar NODE_ENV = producción" después de que los siguientes comandos de compilación sean un ejemplo:
para el entorno de desarrollo, tenemos que presionar el comando "npm run dev"
para un entorno de producción, tenemos que presionar el comando "npm run start"
fuente
En macOS para aquellos que usan la versión express
4.x.x
y usan elDOTENV
complemento, necesitan usar así:Después de instalar el complemento, importe lo siguiente en el archivo donde inicia la aplicación:
require('dotenv').config({path: path.resolve(__dirname+'/.env')});
En el directorio raíz, cree un archivo '.env' y agregue la variable como:
NODE_ENV=development
oNODE_ENV = development
fuente
En UBUNTU use:
$ export NODE_ENV = prueba
fuente
Se debe al sistema operativo
En su package.json, asegúrese de tener sus scripts (donde app.js es su archivo js principal que se ejecutará y NODE_ENV se declara en un archivo .env) .Eg:
Para ventanas
También configure su variable de archivo .env con NODE_ENV = desarrollo
Si su archivo .env está en una carpeta para, por ejemplo, la carpeta de configuración, asegúrese de especificar en app.js (su archivo js principal)
const dotenv = require ('dotenv'); dotenv.config ({ruta: './config/config.env'});
fuente
Si te enfrentaste a este probem en React, necesitas [email protected] y superior. También para otras variables de entorno que no sean
NODE_ENV
trabajar en React, deben tener el prefijoREACT_APP_
.fuente
Tan pronto como sea posible en su aplicación, requiera y configure dotenv.
require('dotenv').config()
fuente
También puede configurarlo por código, por ejemplo:
process.env.NODE_ENV = 'test';
fuente