Uma maneira muito boa de executar variáveis de ambiente que usei com sucesso está abaixo:
A. Tenha arquivos de configuração diferentes :
dev.js // isso possui todas as variáveis de ambiente apenas para desenvolvimento
O arquivo contém:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some DEV Value1',
someEnvKey2 : 'some DEV Value2'
};
stage.js // possui todas as variáveis de ambiente apenas para desenvolvimento
..
qa.js // isso possui todas as variáveis de ambiente apenas para teste de qa
O arquivo contém:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some QA Value1',
someEnvKey2 : 'some QA Value2'
};
NOTA : os valores estão mudando com o ambiente, principalmente, mas as chaves permanecem as mesmas.
você pode ter mais
z__prod.js // possui todas as variáveis de ambiente somente para produção / produção
NOTA: Esse arquivo nunca é empacotado para implantação
Coloque todos esses arquivos de configuração na pasta / config /
<projectRoot>/config/dev.js
<projectRoot>/config/qa.js
<projectRoot>/config/z__prod.js
<projectRoot>/setenv.js
<projectRoot>/setenv.bat
<projectRoot>/setenv.sh
NOTA : O nome do prod é diferente dos outros, pois não seria usado por todos.
B. Defina as variáveis de ambiente OS / Lambda / AzureFunction / GoogleCloudFunction no arquivo de configuração
Agora, idealmente, essas variáveis de configuração no arquivo devem ser como variáveis de ambiente do SO (ou variáveis de função LAMBDA ou variáveis de função do Azure, funções do Google Cloud etc.)
então, escrevemos automação no sistema operacional Windows (ou outro)
Suponha que escrevamos o arquivo bat ' setenv ', que usa um argumento que é o ambiente que queremos definir
Agora execute " setenv dev "
a) Isso pega a entrada da variável de argumento passada ('dev' por enquanto)
b) lê o arquivo correspondente ('config \ dev.js')
c) define as variáveis de ambiente no sistema operacional Windows (ou outro)
Por exemplo,
O conteúdo do setenv.bat pode ser:
node setenv.js
O conteúdo do setenv.js pode 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.)
Isso é tudo , seu ambiente está pronto para uso.
Quando você faz ' setenv qa ', todas as variáveis de ambiente qa estarão prontas para uso em qa.js e prontas para uso pelo mesmo programa (que sempre solicita process.env.someEnvKey1, mas o valor obtido é qa um).
Espero que ajude.
fish
, em vez debash
, você precisa usar:env USER_ID=239482 my_command
. Por exemplo, para definir variáveis de ambiente para adebug
bibliotecaenv DEBUG='*' node some_file.js
node.js