Cómo configurar NODE_ENV para producción/desarrollo en OS X
Para uso en entornos express.js. ¿Alguna sugerencia?
Antes de ejecutar su aplicación, puede hacerlo en la consola,
export NODE_ENV=production
O si estás en Windows puedes probar esto:
SET NODE_ENV=production
para PowerShell:
$env:NODE_ENV="production"
o puedes ejecutar tu aplicación así:
NODE_ENV=production node app.js
También puedes configurarlo en tu archivo js:
process.env.NODE_ENV = 'production';
Pero no sugiero hacerlo en su archivo de tiempo de ejecución, ya que no es fácil abrir VIM en su servidor y cambiarlo a producción. Puede crear un archivo config.json en su directorio y cada vez que se ejecuta su aplicación, lo lee y establece la configuración.
en paquete.json:
{
...
"scripts": {
"start": "NODE_ENV=production node ./app"
}
...
}
luego ejecuta en la terminal:
npm start
¿ Nadie ha mencionado .env
aquí todavía? Cree un .env
archivo en la raíz de su aplicación, luego require('dotenv').config()
lea los valores. Fácil de cambiar, de fácil lectura y multiplataforma.
https://www.npmjs.com/package/dotenv
export NODE_ENV=production
Es una mala solución, desaparece después de reiniciar.
Si no quieres preocuparte más por esa variable, agrégala a este archivo:
/etc/environment
no use la sintaxis de exportación, simplemente escriba (en una nueva línea si ya hay algún contenido allí):
NODE_ENV=production
Funciona después del reinicio. Ya no tendrás que volver a ingresar el comando export NODE_ENV=production en ningún lugar y simplemente usar node con lo que quieras - para siempre, pm2...
Para heroku:
heroku config:set NODE_ENV="production"
que en realidad es el predeterminado.
Para no tener que preocuparse si está ejecutando sus scripts en Windows, Mac o Linux, instale el paquete cross-env . Luego puedes usar tus scripts fácilmente, así:
"scripts": {
"start-dev": "cross-env NODE_ENV=development nodemon --exec babel-node -- src/index.js",
"start-prod": "cross-env NODE_ENV=production nodemon --exec babel-node -- src/index.js"
}
Grandes apoyos para los desarrolladores de este paquete.
npm install --save-dev cross-env