Une très bonne façon de faire les variables d'environnement que j'ai utilisées avec succès est ci-dessous:
A. Avoir différents fichiers de configuration :
dev.js // contient toutes les variables d'environnement pour le développement uniquement
Le fichier contient:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some DEV Value1',
someEnvKey2 : 'some DEV Value2'
};
stage.js // ceci a toutes les variables d'environnement pour le développement uniquement
..
qa.js // contient toutes les variables d'environnement pour le test qa uniquement
Le fichier contient:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some QA Value1',
someEnvKey2 : 'some QA Value2'
};
REMARQUE : les valeurs changent avec l'environnement, principalement, mais les clés restent les mêmes.
vous pouvez en avoir plus
z__prod.js // cela a toutes les variables d'environnement pour la production / live uniquement
REMARQUE: ce fichier n'est jamais fourni pour le déploiement
Mettez tous ces fichiers de configuration dans le dossier / config /
<projectRoot>/config/dev.js
<projectRoot>/config/qa.js
<projectRoot>/config/z__prod.js
<projectRoot>/setenv.js
<projectRoot>/setenv.bat
<projectRoot>/setenv.sh
REMARQUE : Le nom de prod est différent des autres, car il ne serait pas utilisé par tous.
B. Définissez les variables d'environnement OS / Lambda / AzureFunction / GoogleCloudFunction à partir du fichier de configuration
Maintenant, idéalement, ces variables de configuration dans un fichier devraient être utilisées comme variables d'environnement du système d'exploitation (ou, variables de fonction LAMBDA, ou, variables de fonction Azure, Google Cloud Functions, etc.)
donc, nous écrivons l'automatisation dans Windows OS (ou autre)
Supposons que nous écrivions le fichier de chauve-souris « setenv », qui prend un argument qui est l'environnement que nous voulons définir
Exécutez maintenant " setenv dev "
a) Cela prend l'entrée de la variable d'argument passée ('dev' pour l'instant)
b) lire le fichier correspondant ('config \ dev.js')
c) définit les variables d'environnement dans le système d'exploitation Windows (ou autre)
Par exemple,
Le contenu setenv.bat peut être:
node setenv.js
Le contenu de setenv.js peut être:
// import "process.env.ENV".js file (dev.js example)
// loop the imported file contents
// set the environment variables in Windows OS (or, Lambda, etc.)
C'est tout , votre environnement est prêt à l'emploi.
Lorsque vous effectuez ' setenv qa ', toutes les variables d'environnement qa seront prêtes à être utilisées à partir de qa.js et prêtes à être utilisées par le même programme (qui demande toujours process.env.someEnvKey1, mais la valeur qu'il obtient est qa one).
J'espère que cela pourra aider.
fish
lieu debash
, vous devez utiliser:env USER_ID=239482 my_command
. Par exemple, pour définir des variables d'environnement pour ladebug
bibliothèque de node.js :env DEBUG='*' node some_file.js
fishshell.com/docs/current/faq.html#faq-single-env