Ich versuche einem Tutorial zu folgen und es heißt:
Es gibt verschiedene Möglichkeiten, Anmeldeinformationen zu laden.
- Aus Umgebungsvariablen geladen,
- Aus einer JSON-Datei auf der Festplatte geladen,
Die Schlüssel müssen wie folgt sein:
USER_ID, USER_KEY
... Dies bedeutet, dass Sie, wenn Sie Ihre Umgebungsvariablen richtig festlegen, die Anmeldeinformationen in Ihrer Anwendung überhaupt nicht verwalten müssen.
Basierend auf etwas Googeln scheint es, dass ich die Variablen in setzen muss process.env
? Wie und wo setze ich diese Anmeldeinformationen? Beispiel Bitte.
quelle
fish
anstelle von verwendenbash
, müssen Sie Folgendes verwenden :env USER_ID=239482 my_command
. Zum Festlegen von Umgebungsvariablen für diedebug
Bibliothek von node.js :env DEBUG='*' node some_file.js
fishshell.com/docs/current/faq.html#faq-single-envenv DEBUG=* node some_file.js
dotenv
darum geht es, denn es wird Ihre.env
Datei lesen und anwenden.Ich empfehle dringend, in das dotenv-Paket zu schauen.
https://github.com/motdotla/dotenv
Es ähnelt der Bibliothek, die in der Antwort von @Benxamin vorgeschlagen wurde, ist jedoch viel sauberer und erfordert keine Bash-Skripte. Erwähnenswert ist auch, dass die Codebasis beliebt und gut gepflegt ist.
Grundsätzlich benötigen Sie eine .env-Datei (die ich dringend empfehlen kann, von Ihrem Git / Mercurial / etc ignoriert zu werden):
Fügen Sie dann in Ihrer Bewerbungsdatei so früh wie möglich die folgende Zeile ein:
Boom. Erledigt. 'process.env' enthält jetzt die obigen Variablen:
Die '.env'-Datei ist nicht erforderlich, sodass Sie sich keine Sorgen machen müssen, dass Ihre App in Abwesenheit umkippt.
quelle
Geben Sie einfach die env-Werte in der Befehlszeile ein
quelle
Sie können die Umgebungsvariable über die globale Prozessvariable wie folgt festlegen:
Funktioniert auf allen Plattformen.
quelle
Wenn Sie eine Verwaltungsoption wünschen, probieren Sie das Paket envs npm aus. Es gibt Umgebungswerte zurück, wenn sie festgelegt sind. Andernfalls können Sie einen Standardwert angeben , die in einer globalen gespeichert defaults Objektvariable , wenn es nicht in Ihrer Umgebung ist.
Die Verwendung von .env- ("dot ee-en-vee") oder Umgebungsdateien ist aus vielen Gründen sinnvoll . Einzelpersonen können ihre eigenen Konfigurationen verwalten. Sie können verschiedene Umgebungen (Entwickler, Bühne, Produkt) für Cloud-Dienste mit eigenen Umgebungseinstellungen bereitstellen. Und Sie können sinnvolle Standardeinstellungen festlegen.
In Ihrer
.env
Datei ist jede Zeile ein Eintrag, wie in diesem Beispiel:Sie sollten nicht enthalten die
.env
in Ihrer Version Control Repository (fügen Sie Ihre.gitignore
Datei).Um Variablen aus der
.env
Datei in Ihre Umgebung zu übertragen, können Sie ein Bash-Skript verwenden, um das Äquivalent vonexport NODE_ENV=development
direkt vor dem Start Ihrer Anwendung auszuführen.Dann geht das in Ihrer Anwendung Javascript:
quelle
Dies hängt von Ihrem Betriebssystem und Ihrer Shell ab
Unter Linux mit der Shell-Bash erstellen Sie Umgebungsvariablen wie diese (in der Konsole):
Weitere Informationen zu Umgebungsvariablen in Ubuntu (zum Beispiel):
Umgebungsvariablen auf Ubuntu
quelle
Wie ctrlplusb sagte, empfehle ich Ihnen, das Paket zu verwenden. Eine
dotenv
andere Möglichkeit, dies zu tun, besteht darin, eine js-Datei zu erstellen und diese in der ersten Zeile Ihres App-Servers zu benötigen.env.js:
app.js:
quelle
Windows-Benutzer: Achtung! Diese Befehle werden für Unix empfohlen, sind jedoch unter Windows nur vorübergehend. Sie legen eine Variable nur für die aktuelle Shell fest. Sobald Sie Ihren Computer neu starten oder eine neue Terminal-Shell starten, sind sie verschwunden.
SET TEST="hello world"
$env:TEST = "hello world"
Um unter Windows eine persistente Umgebungsvariable festzulegen, müssen Sie stattdessen einen der folgenden Ansätze verwenden:
A) .env-Datei in Ihrem Projekt - Dies ist die beste Methode, da Sie Ihr Projekt auf andere Systeme verschieben können, ohne Ihre Umgebungsvariablen auf diesem System einrichten zu müssen, bevor Sie Ihren Code ausführen können.
Erstellen Sie eine
.env
Datei in Ihrem Projektordner root mit dem Inhalt:TEST="hello world"
Schreiben Sie einen Knotencode, der diese Datei liest. Ich schlage vor, dotenv zu installieren (
npm install dotenv --save
) zu und dannrequire('dotenv').config();
während des Knoten-Setup-Codes hinzuzufügen .process.env.TEST
Env-Dateien sind eine gute Möglichkeit, API-Schlüssel und andere Geheimnisse zu bewahren, die Sie nicht in Ihrer Codebasis haben möchten. Stellen Sie einfach sicher, dass Sie es zu Ihrem hinzufügen
.gitignore
.B) Powershell verwenden - Dadurch wird eine Variable erstellt, auf die in anderen Terminals zugegriffen werden kann. Beachten Sie jedoch, dass die Variable nach dem Neustart des Computers verloren geht.
[Environment]::SetEnvironmentVariable("TEST", "hello world", "User")
Diese Methode wird in Windows-Foren allgemein empfohlen, aber ich glaube nicht, dass die Leute wissen, dass die Variable nach einem Systemneustart nicht bestehen bleibt.
C) Verwenden Sie die Windows-GUI
quelle
Schritt 1: Fügen Sie Ihre Umgebungsvariablen zu der entsprechenden Datei hinzu. Beispielsweise könnte Ihre Staging-Umgebung aufgerufen werden
.env.staging
, die die UmgebungsvariablenUSER_ID
und enthältUSER_KEY
spezifisch für Ihre Staging-Umgebung ist.Schritt 2: Fügen Sie in Ihrer
package.json
Datei Folgendes hinzu:Rufen Sie es dann in Ihrem Bereitstellungsskript folgendermaßen auf:
Super einfach einzurichten und funktioniert wie ein Zauber!
Quelle: https://medium.com/@tacomanator/environments-with-create-react-app-7b645312c09d
quelle
Für Windows-Benutzer ist diese Frage zum Stapelüberlauf und die beste Antwort sehr nützlich, um Umgebungsvariablen über die Befehlszeile festzulegen
Wie kann ich NODE_ENV = Produktion in Windows setzen?
quelle
Kam auf ein nettes Werkzeug dafür.
Node-Env-Datei
Analysiert und lädt Umgebungsdateien (die ENV-Variablenexporte enthalten) in die Node.js-Umgebung, dh
process.env
- Verwendet diesen Stil:quelle
Als Erweiterung der Antwort von @ctrlplusb
würde ich Ihnen empfehlen, sich auch das
env-dot-prop
Paket anzusehen .Sie können Eigenschaften festlegen / abrufen,
process.env
indem Sie a verwendendot-path
.Nehmen wir an, dass Ihr
process.env
Folgendes enthält:Dann können Sie die Umgebungsvariablen folgendermaßen bearbeiten:
Auf diese Weise können Sie die Umgebungsvariablen analysieren und als Konfigurationsobjekt in Ihrer App verwenden.
Es hilft Ihnen auch bei der Implementierung einer 12-Faktor-Konfiguration .
quelle
Eine sehr gute Möglichkeit, Umgebungsvariablen zu verwenden, die ich erfolgreich verwendet habe, ist unten aufgeführt:
A. Haben Sie verschiedene Konfigurationsdateien :
dev.js // dies enthält alle Umgebungsvariablen nur für die Entwicklung.
Die Datei enthält:
stage.js // Dies enthält alle Umgebungsvariablen nur für die Entwicklung
qa.js // dies enthält alle Umgebungsvariablen nur zum Testen von qa
Die Datei enthält:
HINWEIS : Die Werte ändern sich meistens mit der Umgebung, aber die Schlüssel bleiben gleich.
du kannst mehr haben
z__prod.js // Dies enthält alle Umgebungsvariablen nur für die Produktion / Live.
HINWEIS: Diese Datei wird niemals für die Bereitstellung gebündelt
Legen Sie alle diese Konfigurationsdateien im Ordner / config / ab
HINWEIS : Der Name von prod unterscheidet sich von anderen, da er nicht von allen verwendet wird.
B. Legen Sie die Umgebungsvariablen OS / Lambda / AzureFunction / GoogleCloudFunction aus der Konfigurationsdatei fest
Im Idealfall sollten diese Konfigurationsvariablen in der Datei als Umgebungsvariablen des Betriebssystems (oder als LAMBDA-Funktionsvariablen oder Azure-Funktionsvariablen, Google Cloud-Funktionen usw.) verwendet werden.
Also schreiben wir Automatisierung in Windows OS (oder einem anderen)
Angenommen, wir schreiben eine ' setenv' -Fledermausdatei, die ein Argument verwendet, nämlich die Umgebung, die wir festlegen möchten
Führen Sie nun " setenv dev " aus
a) Dies übernimmt die Eingabe von der übergebenen Argumentvariablen ('dev' für jetzt).
b) Lesen Sie die entsprechende Datei ('config \ dev.js').
c) die Umgebungsvariablen unter Windows (oder einem anderen).
Zum Beispiel,
Der Inhalt von setenv.bat könnte sein:
Der Inhalt von setenv.js könnte sein:
Das ist alles , Ihre Umgebung ist einsatzbereit.
Wenn Sie ' setenv qa ' ausführen , sind alle qa-Umgebungsvariablen für die Verwendung in qa.js bereit und können von demselben Programm verwendet werden (das immer nach process.env.someEnvKey1 fragt, aber der Wert, den es erhält, ist qa eins).
Ich hoffe, das hilft.
quelle
Erleichtern Sie sich das Leben mit dotenv-webpack . Installieren Sie es einfach
npm install dotenv-webpack --save-dev
und erstellen Sie eine.env
Datei im Stammverzeichnis Ihrer Anwendung (denken Sie daran, diese.gitignore
vor Ihnen hinzuzufügengit push
). Öffnen Sie diese Datei und legen Sie dort einige Umgebungsvariablen fest, z. B.:Fügen Sie nun in Ihrer Webpack-Konfiguration Folgendes hinzu:
Nur
const Dotenv = require('dotenv-webpack');
,,plugins: [new Dotenv()]
und natürlichmodule.exports = webpackConfig; // Export all custom Webpack configs.
erforderlich. In einigen Szenarien können jedoch Fehler auftreten. Für diese haben Sie auch die Lösung, die impliziert, wie Sie bestimmte Fehler beheben können.Jetzt, wo immer Sie möchten , können Sie einfach verwenden
process.env.ENV_VAR_1
,process.env.ENV_VAR_2
,process.env.ENV_VAR_3
in Ihrer Anwendung.quelle
Ich wurde undefiniert, nachdem ich eine Systemumgebung festgelegt hatte. Wenn ich APP_VERSION in die Benutzerumgebung einfüge, kann ich den Wert vom Knoten über process.env.APP_VERSION anzeigen
quelle
Wenn Sie einen Mac / Linux verwenden und lokale Parameter auf dem von Ihnen verwendeten Computer abrufen möchten, gehen Sie wie folgt vor:
quelle