Cómo configurar NODE_ENV para producción/desarrollo en OS X

Resuelto Mark Nguyen asked hace 12 años • 17 respuestas

Para uso en entornos express.js. ¿Alguna sugerencia?

Mark Nguyen avatar Feb 09 '12 00:02 Mark Nguyen
Aceptado

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.

Farid Nouri Neshat avatar Feb 09 '2012 03:02 Farid Nouri Neshat

en paquete.json:

{
  ...
  "scripts": {
    "start": "NODE_ENV=production node ./app"
  }
  ...
}

luego ejecuta en la terminal:

npm start
wangchi avatar Jun 29 '2015 06:06 wangchi

¿ Nadie ha mencionado .envaquí todavía? Cree un .envarchivo 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

theflowersoftime avatar Jun 16 '2016 21:06 theflowersoftime

export NODE_ENV=productionEs 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.

Lukas Liesis avatar Jan 27 '2016 14:01 Lukas Liesis

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
Notorious avatar Feb 02 '2018 07:02 Notorious