A continuación se muestra una muy buena forma de hacer variables de entorno que he utilizado con éxito:
A. Tener diferentes archivos de configuración :
dev.js // esto tiene todas las variables de entorno solo para desarrollo
El archivo contiene:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some DEV Value1',
someEnvKey2 : 'some DEV Value2'
};
stage.js // esto tiene todas las variables de entorno solo para desarrollo
..
qa.js // esto tiene todas las variables de entorno para pruebas de qa solamente
El archivo contiene:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some QA Value1',
someEnvKey2 : 'some QA Value2'
};
NOTA : los valores están cambiando con el entorno, principalmente, pero las claves siguen siendo las mismas.
puedes tener más
z__prod.js // esto tiene todas las variables de entorno solo para producción / en vivo
NOTA: Este archivo nunca se incluye para su implementación
Ponga todos estos archivos de configuración en la carpeta / config /
<projectRoot>/config/dev.js
<projectRoot>/config/qa.js
<projectRoot>/config/z__prod.js
<projectRoot>/setenv.js
<projectRoot>/setenv.bat
<projectRoot>/setenv.sh
NOTA : El nombre de prod es diferente a otros, ya que no sería usado por todos.
B. Establezca las variables de entorno OS / Lambda / AzureFunction / GoogleCloudFunction desde el archivo de configuración
Ahora, idealmente, estas variables de configuración en el archivo deben ir como variables de entorno del sistema operativo (o, variables de función LAMBDA, o, variables de función de Azure, Google Cloud Functions, etc.)
entonces, escribimos automatización en el sistema operativo Windows (u otro)
Supongamos que escribimos el archivo bat ' setenv ', que toma un argumento que es el entorno que queremos establecer
Ahora ejecuta " setenv dev "
a) Esto toma la entrada de la variable de argumento pasada ('dev' por ahora)
b) lee el archivo correspondiente ('config \ dev.js')
c) establece las variables de entorno en el sistema operativo Windows (u otro)
Por ejemplo,
Los contenidos de setenv.bat pueden ser:
node setenv.js
Los contenidos de setenv.js pueden ser:
// import "process.env.ENV".js file (dev.js example)
// loop the imported file contents
// set the environment variables in Windows OS (or, Lambda, etc.)
Eso es todo , su entorno está listo para usar.
Cuando hace ' setenv qa ', todas las variables de entorno qa estarán listas para usar desde qa.js, y listas para usar con el mismo programa (que siempre solicita process.env.someEnvKey1, pero el valor que obtiene es qa one).
Espero que ayude.
fish
en lugar debash
, es necesario el uso:env USER_ID=239482 my_command
. Por ejemplo, para establecer variables de entorno para ladebug
biblioteca deenv DEBUG='*' node some_file.js
node.js