Ein sehr guter Weg, Umgebungsvariablen erfolgreich zu verwenden, ist unten:
A. Unterschiedliche Konfigurationsdateien haben:
-
dev.js // enthält alle Umgebungsvariablen nur für die Entwicklung
Die Datei enthält:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some DEV Value1',
someEnvKey2 : 'some DEV Value2'
};
-
stage.js // enthält alle Umgebungsvariablen nur für die Entwicklung
..
-
qa.js // enthält alle Umgebungsvariablen nur für die QA-Tests
Die Datei enthält:
module.exports = {
ENV: 'dev',
someEnvKey1 : 'some QA Value1',
someEnvKey2 : 'some QA Value2'
};
HINWEIS: Die Werte ändern sich mit der Umgebung, aber die Schlüssel bleiben gleich.
-
Man kann mehr haben
-
z__prod.js // enthält alle Umgebungsvariablen nur für die Produktion/Live
HINWEIS: Diese Datei wird niemals für den Bereitstellung gebündelt
-
Alle diese Konfigurationsdateien in den /config/ Ordner legen
/config/dev.js
/config/qa.js
/config/z__prod.js
/setenv.js
/setenv.bat
/setenv.sh
HINWEIS: Der Name von prod ist anders als die anderen, da er nicht von allen verwendet wird.
B. Setze die OS/ Lambda/ AzureFunction/ GoogleCloudFunction Umgebungsvariablen aus der Konfigurationsdatei
Normalerweise sollten diese Konfigurationsvariablen in der Datei als OS-Umgebungsvariablen (oder LAMBDA-Funktionsvariablen, Azure-Funktionsvariablen, Google Cloud Functions usw.) gesetzt werden
also schreiben wir Automatisierung in Windows OS (oder anderen)
-
Angenommen, wir schreiben eine 'setenv'-Bat-Datei, die ein Argument annimmt, nämlich die Umgebung, die wir setzen möchten
-
Führe jetzt "setenv dev" aus
a) Dies nimmt den Input aus der übergebenen Argumentvariable ('dev' für jetzt)
b) liest die entsprechende Datei ('config\dev.js')
c) setzt die Umgebungsvariablen in Windows OS (oder anderen)
Zum Beispiel,
Der Inhalt der setenv.bat könnte sein:
node setenv.js
Der Inhalt der setenv.js könnte sein:
// "process.env.ENV".js Datei importieren (Beispiel dev.js)
// die importierten Dateiinhalte durchlaufen
// die Umgebungsvariablen in Windows OS (oder, Lambda usw.) setzen
Das ist alles, deine Umgebung ist einsatzbereit.
Wenn du 'setenv qa' durchführst, sind alle QA-Umgebungsvariablen aus qa.js bereit für den Einsatz, und bereit für die Verwendung durch dasselbe Programm (das immer nach process.env.someEnvKey1 fragt, aber der Wert, den es erhält, ist qa).
Ich hoffe, das hilft.