So passen Sie Node.js .env-Dateien für verschiedene Umgebungsphasen an

Haben Sie sich jemals in einer Situation befunden, in der Sie benutzerdefinierte Umgebungsvariablen für verschiedene Entwicklungsstadien Ihrer App benötigten? Hier ist eine einzeilige Lösung.

Die Entwicklung war seit der Erfindung der .envDatei viel einfacher . Sie können Ihre Umgebungsvariablen und -werte einfach mit der Syntax ENV_VARIABLE=VALUEund dem Boom einstellen ! Diese Variablen wurden als Umgebungsvariablen geladen, sodass Sie schnell darauf zugreifen können:

console.log(process.env.ENV_VARIABLE)

Falls Sie sich immer noch fragen, was dies alles bedeutet, sind Sie wahrscheinlich neu in der .envDatei. Es ist eigentlich eine einfache Konfigurationstextdatei, mit der einige Variablen definiert werden, die Sie an die Umgebung Ihrer Anwendung übergeben möchten.

Diese Datei benötigt so etwas wie einen Parser , damit sie funktioniert. Der Parser liest die Variablendefinitionen one-by-one und parst sie in die Umwelt. Es verwendet das Format ENV_VARIABLE = VALUE (im Fall von Node.js :)process.env[ENV_VARIABLE]=VALUE .

Dies ist natürlich keine in Node.js integrierte Funktion. Sie müssen es mit einem beliebten Modul namens dotenv entwickeln .

Es ist eine gute Problemumgehung, da es die Entwicklung zwischen Mitentwicklern und der gesamten Entwickler-Community wirklich erleichtert hat. Ich persönlich hatte das dotenv- Modul verwendet, bis ich gestrandet war und versuchte, eine Lösung zu finden, mit der ich eine andere Konfigurationsdatei für eine bestimmte Umgebung verwenden konnte. Das wäre noch cooler… richtig? Ja! Aber leider das dotenvModul bietet uns nicht diese Goody.

Was kommt als nächstes? Wir brauchen dieses Ding, um die Entwicklung und das Testen in verschiedenen Entwicklungsstadien zu vereinfachen!

Wie wäre es mit benutzerdefinierten .env-Dateien für verschiedene Umgebungsphasen?

Glaubst du nicht, dass das eine gute Lösung wäre? Definieren Sie benutzerdefinierte Umgebungsvariablen, indem Sie einfach eine .env.envname- Datei erstellen. Cool! Dafür ist custom-env gekommen.

Custom env ist eine Bibliothek, die entwickelt wurde, um die Entwicklung zu vereinfachen, indem mehrere .env-Konfigurationen für verschiedene Umgebungen zugelassen werden. Dies erfolgt durch Laden von Umgebungsvariablen aus einer .env.envname-Datei in das process.envObjekt des Knotens .

Installation

Greifen Sie einfach mit dem folgenden Befehl zu:

npm i custom-env

Verwendung

require('custom-env').env()

Standardmäßig wählt custom-env die .env-Datei für Ihre Entwicklungsphase aus. Um jedoch für eine andere Stufe anzupassen, fügen Sie den Namen als Suffix wie in .env.envname hinzu.

Beispiel

Wir können eine benutzerdefinierte Umgebungsvariable für eine Staging-Entwicklung definieren.

  • Erstellen Sie eine .env.staging-Datei
  • Definieren Sie Ihre Variablen
APP_ENV=staging APP_NAME=custom environment app DB_HOST=localhost DB_USER=user DB_PASS=pass
  • Greifen Sie auf Ihre Variablen zu
// Require custom-env and set your preferred env file require ('custom-env').env('staging') console.log(process.env.APP_ENV) console.log(process.env.APP_NAME) console.log(process.env.DB_HOST) console.log(process.env.DB_PASS)

Erwartete Ausgabe

staging custom environment app localhost user pass

Das war's, ziemlich einfach. Sie können gerne weitere Variablen für verschiedene Phasen definieren, von denen Sie glauben, dass Sie sie haben, wie z.

.env.testing, .env.staging, .env.server1, .env.server2, .env.localhost

Auf die aktuelle Umgebung einstellen

Sie können custom-env anweisen , eine Konfiguration zu verwenden, die Ihrer aktuellen Entwicklungsstufe entspricht, indem Sie true übergebenzum env()Methode.

Beispiel

Datei: index.js

// Pass true to env() to make it use the current environment stage. require('custom-env').env(true) console.log(process.env.APP_NAME) console.log(process.env.USERNAME) console.log(process.env.PASSKEY)

Definieren wir nun eine Staging-Konfigurationsdatei:

Datei: .env.staging

APP_NAME=Staging Node App USER_NAME=John PASSKEY=J*h*

Lassen Sie uns nun den Knoten mit der Staging-Umgebung bedienen:

NODE_ENV=staging node index.js

Erwartete Ausgabe

Los geht's!

Vollständige Dokumentation

Die vollständige Dokumentation von custom-env finden Sie auf der npm-Seite//www.npmjs.com/package/custom-env

Quellcode

Sie können die benutzerdefinierte Umgebung erhalten oder dazu beitragenQuellcode unter //github.com/erisanolasheni/custom-env

Viel Spaß beim Codieren!