Di seguito è riportato un ottimo modo per fare variabili d'ambiente che ho usato con successo:
A. Avere diversi file di configurazione :
dev.js // contiene tutte le variabili di ambiente solo per lo sviluppo
Il file contiene:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some DEV Value1',
someEnvKey2 : 'some DEV Value2'
};
stage.js // questo ha tutte le variabili d'ambiente solo per lo sviluppo
..
qa.js // contiene tutte le variabili di ambiente solo per i test di qa
Il file contiene:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some QA Value1',
someEnvKey2 : 'some QA Value2'
};
NOTA : i valori stanno cambiando con l'ambiente, principalmente, ma le chiavi rimangono uguali.
puoi averne di più
z__prod.js // contiene tutte le variabili di ambiente solo per produzione / live
NOTA: questo file non viene mai raggruppato per la distribuzione
Metti tutti questi file di configurazione nella cartella / config /
<projectRoot>/config/dev.js
<projectRoot>/config/qa.js
<projectRoot>/config/z__prod.js
<projectRoot>/setenv.js
<projectRoot>/setenv.bat
<projectRoot>/setenv.sh
NOTA : il nome di prod è diverso da altri, in quanto non sarebbe usato da tutti.
B. Impostare le variabili di ambiente OS / Lambda / AzureFunction / GoogleCloudFunction dal file di configurazione
Ora idealmente, queste variabili di configurazione nel file, dovrebbero andare come variabili di ambiente del sistema operativo (o, variabili di funzione LAMBDA o variabili di funzione di Azure, Google Cloud Functions, ecc.)
quindi, scriviamo automazione nel sistema operativo Windows (o altro)
Supponiamo di scrivere il file bat ' setenv ', che accetta un argomento che è l'ambiente che vogliamo impostare
Ora esegui " setenv dev "
a) Questo prende l'input dalla variabile dell'argomento passato ('dev' per ora)
b) leggi il file corrispondente ('config \ dev.js')
c) imposta le variabili d'ambiente nel sistema operativo Windows (o altro)
Per esempio,
I contenuti di setenv.bat potrebbero essere:
node setenv.js
I contenuti di setenv.js potrebbero essere:
// import "process.env.ENV".js file (dev.js example)
// loop the imported file contents
// set the environment variables in Windows OS (or, Lambda, etc.)
Questo è tutto , il tuo ambiente è pronto per l'uso.
Quando fai ' setenv qa ', tutte le variabili d'ambiente qa saranno pronte per l'uso da qa.js e pronte per l'uso dallo stesso programma (che richiede sempre process.env.someEnvKey1, ma il valore che ottiene è qa uno).
Spero che aiuti.
fish
invecebash
, è necessario utilizzare:env USER_ID=239482 my_command
. Ad esempio, per impostare le variabili di ambiente per node.js'debug
biblioteca:env DEBUG='*' node some_file.js
fishshell.com/docs/current/faq.html#faq-single-env