Saltar al contenido

¿Cómo establecer variables de entorno desde dentro de package.json?

Posterior a investigar en diferentes repositorios y foros de internet al concluir hallamos la solución que te compartimos a continuación.

Solución:

Establezca la variable de entorno en el comando de secuencia de comandos:

...
"scripts": 
  "start": "node app.js",
  "test": "NODE_ENV=test mocha --reporter spec"
,
...

Entonces usa process.env.NODE_ENV en tu aplicación.

Nota: Esto es para Solo Mac y Linux. Para Windows consulte los comentarios.

Simplemente use el paquete NPM cross-env. Muy facil. Funciona en Windows, Linux y todos los entornos. Tenga en cuenta que no utiliza && para pasar a la siguiente tarea. Simplemente configura el env y luego comienza la siguiente tarea. Crédito a @mikekidder por la sugerencia en uno de los comentarios aquí.

De la documentación:


  "scripts": 
    "build": "cross-env NODE_ENV=production OTHERFLAG=myValue webpack --config build/webpack.config.js"
  

Tenga en cuenta que si desea establecer varias variables globales, simplemente indíquelas en sucesión, seguidas de su comando para que se ejecuten.

En última instancia, el comando que se ejecuta (usando spawn) es:

webpack --config build/webpack.config.js

los NODE_ENV la variable de entorno será establecida por cross-env

Debido a que a menudo me encuentro trabajando con múltiples variables de entorno, encuentro útil mantenerlas en un lugar separado. .env archivo (asegúrese de ignorar esto desde su control de código fuente). Luego (en Linux) anteponer export $(cat .env | xargs) && en su comando de secuencia de comandos antes de iniciar su aplicación.

Ejemplo .env expediente:

VAR_A=Hello World
VAR_B=format the .env file like this with new vars separated by a line break

Ejemplo index.js:

console.log('Test', process.env.VAR_A, process.env.VAR_B);

Ejemplo package.json:


  ...
  "scripts": 
    "start": "node index.js",

    "env-linux": "export $(cat .env 
  ...

Desafortunadamente, parece que no puedo configurar las variables de entorno llamando a un script desde un script, como "start-windows": "npm run env-windows && npm start" — así que hay algo de redundancia en los guiones.

Para una prueba, puede ver las variables env ejecutando npm run env-linux o npm run env-windowsy pruebe que lo hacen en su aplicación ejecutando npm run start-linux o npm run start-windows.

Sección de Reseñas y Valoraciones

Eres capaz de sustentar nuestro cometido ejecutando un comentario y dejando una valoración te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *