558 Stimmen

Einstellen von Umgebungsvariablen für Node zum Abrufen

Ich versuche, einem Tutorial zu folgen, und es sagt:

Es gibt einige Möglichkeiten, Anmeldeinformationen zu laden.

  1. Aus Umgebungsvariablen geladen,
  2. Aus einer JSON-Datei auf der Festplatte geladen,

Die Schlüssel müssen wie folgt sein:

USER_ID, USER_KEY

...Das bedeutet, dass wenn Sie Ihre Umgebungsvariablen ordnungsgemäß setzen, müssen Sie überhaupt keine Anmeldeinformationen in Ihrer Anwendung verwalten.

Basierend auf einigen Recherchen scheint es, dass ich die Variablen in process.env setzen muss? Wie und wo setze ich diese Anmeldeinformationen? Bitte ein Beispiel.

47voto

leszek.hanusz Punkte 4619

Es hängt von Ihrem Betriebssystem und Ihrer Shell ab

Auf Linux mit der Shell Bash erstellen Sie Umgebungsvariablen so (in der Konsole):

export FOO=bar

Für weitere Informationen zu Umgebungsvariablen auf Ubuntu (beispielsweise):

Umgebungsvariablen auf Ubuntu

35voto

Drkawashima Punkte 7131

Windows-Benutzer: Vorsicht! Diese Befehle werden für Unix empfohlen. Aber auf Windows bleiben sie nicht erhalten, sie setzen nur eine Variable in Ihrer aktuellen shell, und sie wird verschwinden, wenn Sie neu starten.

  • SET TEST="hello world"
  • $env:TEST = "hello world"

3 Möglichkeiten, eine persistente Umgebungsvariable auf Windows zu setzen:

A) .env Datei in Ihrem Projekt - Die beste Methode. Denn Sie können einfach diese Datei auf jeden Computer kopieren und die gleiche Konfiguration erhalten, wenn das Projekt ausgeführt wird.

  1. Erstellen Sie eine .env Datei im Stammverzeichnis Ihres Projekts mit dem Inhalt: TEST="hello world"

  2. Schreiben Sie etwas Node-Code, der diese Datei liest. Ich empfehle die Installation von dotenv (npm install dotenv --save) und fügen Sie dann require('dotenv').config(); während Ihres Node-Setup-Codes hinzu.

  3. process.env.TEST ist jetzt in Node verwendbar

Env-Dateien sind ein guter Weg, um API-Keys aus Ihrem Code herauszuhalten

B) Verwenden Sie Powershell - dies erstellt eine Variable, die in anderen Terminals zugänglich ist. Aber es ist schlecht, da sie bei einem Neustart des Computers verloren geht.

[Environment]::SetEnvironmentVariable("TEST", "hello world", "User")

Diese Methode wird in Windows-Foren weit verbreitet empfohlen, aber viele sind sich nicht bewusst, dass sie nach einem Neustart des Systems nicht erhalten bleibt....

C) Verwenden Sie die Windows-GUI

Suchen Sie in der Startmenü-Suche oder in der Systemsteuerung nach "Umgebungsvariablen". Wählen Sie "Systemumgebungsvariablene bearbeiten". Ein Dialog öffnet sich und Sie klicken auf den Button "Umgebungsvariablen" am unteren Rand des Dialogs, um eine Bearbeitungsansicht zu öffnen, in der Sie auf die Schaltfläche "Neu" klicken können, um eine neue Umgebungsvariable hinzuzufügen. Einfach. Und bleibt sogar nach einem Neustart erhalten. Aber nichts, was Sie für die Konfiguration eines bestimmten Codebestands verwenden sollten.

24voto

dpolicastro Punkte 1361

Wie ctrlplusb sagte, empfehle ich, das Paket dotenv zu verwenden, aber eine andere Möglichkeit dies zu tun, ist das Erstellen einer JS-Datei und das Erfordern dieser in der ersten Zeile Ihres App-Servers.

env.js:

process.env.VAR1="foo"
process.env.VAR2="bar"

app.js:

require('./env') // relativer Pfad zu env.js.
console.log(process.env.VAR1) // foo

12voto

Blairg23 Punkte 9968

Schritt 1: Fügen Sie Ihre Umgebungsvariablen in ihre entsprechende Datei hinzu. Zum Beispiel könnte Ihre Staging-Umgebung .env.staging heißen, die die Umgebungsvariablen USER_ID und USER_KEY enthält, die spezifisch für Ihre Staging-Umgebung sind.

Schritt 2: Fügen Sie in Ihrer package.json Datei Folgendes hinzu:

"scripts": {
  "build": "sh -ac '. ./.env.${REACT_APP_ENV}; react-scripts build'",
  "build:staging": "REACT_APP_ENV=staging npm run build",
  "build:production": "REACT_APP_ENV=production npm run build",
  ...
}

Rufen Sie es dann in Ihrem Bereitstellungsskript wie folgt auf:

npm run build:staging

Super einfache Einrichtung und funktioniert wie am Schnürchen!

Quelle: https://medium.com/@tacomanator/environments-with-create-react-app-7b645312c09d

8voto

Daniel Danielecki Punkte 5658

Vereinfachen Sie Ihr Leben mit dotenv-webpack. Installieren Sie es einfach mit npm install dotenv-webpack --save-dev, erstellen Sie dann eine .env Datei im Stammverzeichnis Ihrer Anwendung (denken Sie daran, dies zu .gitignore hinzuzufügen, bevor Sie git push). Öffnen Sie diese Datei und setzen Sie dort Umgebungsvariablen, wie zum Beispiel:

ENV_VAR_1=1234
ENV_VAR_2=abcd
ENV_VAR_3=1234abcd

Fügen Sie jetzt in Ihrer Webpack-Konfiguration hinzu:

const Dotenv = require('dotenv-webpack');
const webpackConfig = {
  node: { global: true, fs: 'empty' }, // Fehlerbehebung: "Uncaught ReferenceError: global is not defined" und "Can't resolve 'fs'".
  output: {
    libraryTarget: 'umd' // Fehlerbehebung: "Uncaught ReferenceError: exports is not defined".
  },
  plugins: [new Dotenv()]
};
module.exports = webpackConfig; // Exportieren Sie alle benutzerdefinierten Webpack-Konfigurationen.

Nur const Dotenv = require('dotenv-webpack');, plugins: [new Dotenv()] und natürlich module.exports = webpackConfig; // Exportieren Sie alle benutzerdefinierten Webpack-Konfigurationen. sind erforderlich. In einigen Szenarien können jedoch Fehler auftreten. Für diese haben Sie auch die Lösung, indem Sie angeben, wie Sie bestimmte Fehler beheben können.

Jetzt können Sie überall in Ihrer Anwendung einfach process.env.ENV_VAR_1, process.env.ENV_VAR_2, process.env.ENV_VAR_3 verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X