So legen Sie den Produktionsumgebungsmodus process.env.NODE_ENV fest

So legen Sie den Produktionsumgebungsmodus process.env.NODE_ENV fest

Bevor ich anfange, möchte ich betonen, dass process.env.NODE_ENV standardmäßig nur zwei Zustände hat: Entwicklung und Produktion. Entwicklung bezieht sich auf lokale Entwicklung, nämlich die Localhost-Umgebung (lokale Entwicklung), und Produktion repräsentiert Dienste, die auf jedem Dienst veröffentlicht werden (egal, ob es sich um eine Dat-, Uat- oder Produktionsumgebung handelt). Node weiß nicht, ob Ihr Dienst ein Test- oder ein formeller Dienst ist, es sei denn, Sie geben dies manuell an. Es wird normalerweise als Online-Umgebung betrachtet. Wir können uns die Entwicklung also als Repräsentation der lokalen Entwicklungsumgebung vorstellen und die Produktion als Repräsentation der Online-Umgebung (einschließlich Daten-, UAT- und Produktionsumgebungen usw.).

Warum betone ich diesen Punkt?

Da einige Leute die Entwicklung in process.env.NODE_ENV tatsächlich verwenden, um Online-Testumgebungen wie dat und uat darzustellen, wird besonders betont, dass die Entwicklung die lokale Entwicklungsumgebung darstellt.

Vor kurzem wurde das System an das Single Sign-On des Unternehmens angebunden. Um nach einem erfolgreichen Login wieder auf die Hauptseite des Systems zu springen, habe ich einen Domänennamen für Tests und Sandbox beantragt (vorher habe ich mich direkt mit der IP-Adresse angemeldet). Der Host ist für die lokale Entwicklung konfiguriert. Nach dem Verbinden stellte ich einen sehr problematischen Punkt fest: Die für die einmalige Anmeldung übergebene Sprungadresse muss jedes Mal geändert werden. Während der Entwicklung muss sie als Entwicklungsdomänenname geschrieben werden, während des Tests muss sie in den Testdomänennamen geändert werden, beim Betreten der Sandbox muss sie in den Domänennamen für den Sprung zur Sandbox geändert werden und beim Online-Gehen muss sie in den Onlinedomänennamen geändert werden. Besonders während der Testphase ist das Hin- und Herwechseln zwischen Entwicklung und Test äußerst nervig.
Daher wollte ich es als Konfigurationsdatei schreiben und je nach Umgebung unterschiedliche Konfigurationen laden, damit ich es nicht ständig ändern muss. Zu diesem Zeitpunkt fiel mir process.env ein.

Ein Blick auf process.env

Das Prozessobjekt ist eine globale Variable, die Informationen über das aktuelle Node.js bereitstellt und die relevanten Prozesse des aktuellen Node.js steuert. Da es sich um eine globale Variable handelt, ist sie für die Knotenanwendung immer verfügbar, ohne dass require() erforderlich ist.

Da es sich bei dem Prozess um ein Objekt handelt, ist „env“ natürlich eines seiner Attribute, das ein Objekt mit Informationen zur Benutzerumgebung zurückgibt. Nachdem Sie den Knoten im Terminal eingegeben haben, können Sie die gedruckten Informationen sehen, indem Sie process.env eingeben.

Der Protagonist erscheint process.env.NODE_ENV

NODE_ENV ist keine vorhandene Eigenschaft des process.env-Objekts. Wie wurde es also hinzugefügt?

Nehmen wir ein Beispiel:

In package.json steht das wie folgt:

{
  "Name": "yun-nobile",
  "version": "2.0.0",
  "Beschreibung": "Taibao Standard-Mobilprodukt 2.0, basierend auf Vue",
  "Haupt": "yunprod.js",
  "Skripte": {
    "Build": "Cross-Env NODE_ENV=Produktionsknoten yunprod.js Build",
    "dev": "node yunprod.js-Entwickler"
  }
  ...
}  

Wenn wir den Befehl „npm run build script“ ausführen, wird der Cross-Env-Build NODE_ENV=Production-Node yunprod.js ausgeführt und NODE_ENV wird auf Produktion gesetzt, sodass process.env.NODE_ENV auf Produktion gesetzt wird.

Daher ist process.env.NODE_ENV eine globale Umgebungsvariable, die hinzugefügt wird, wenn wir den Skriptbefehl ausführen.

process.env.NODE_ENV wird verwendet, um den aktuellen Entwicklungsstand zu bestimmen. Im Allgemeinen wird die Produktionsphase auf „Produktion“ und die Entwicklungsphase auf „Entwicklung“ eingestellt, und dann wird process.env.NODE_ENV im Skript gelesen.
Beim Ausführen des Skripts können Sie die Umgebungsvariablen wie folgt ändern: Fügen Sie den Befehl in die Skripts der Datei package.json ein:

NODE_ENV=Produktionsknoten build.js

Dieser Befehl meldet jedoch einen Fehler, wenn die Schüler, die Windows verwenden, den Code herunterladen, da die Einstellungen unter Windows unterschiedlich sind

setze NODE_ENV=Produktionsknoten build.js

Aber unterschiedliche Einstellungen auf unterschiedlichen Computern werden definitiv nicht funktionieren. Hier kommt Cross-Env zur Rettung.
cross-env kann Umgebungsvariablen plattformübergreifend festlegen und verwenden

npm install --save-dev umgebungsübergreifend

Als nächstes können wir es über Cross-Env einrichten

Cross-Env NODE_ENV = Produktionsknoten build.js

Nach dieser Einstellung können wir process.env.NODE_ENV in Skripten verwenden, aber nicht in Modulen. Um es direkt in Modulen zu verwenden, benötigen wir einige Konfigurationen

In Webpack 4+ können Sie die Modusoption verwenden:

modul.exporte = {
  Modus: „Produktion“
}

Aber in Webpack 3 und niedriger müssen Sie DefinePlugin verwenden:

var webpack = erforderlich('webpack')

modul.exporte = {
  // ...
  Plugins: [
    // ...
    neues webpack.DefinePlugin({
      „Prozess.env.NODE_ENV“: JSON.stringify(„Produktion“)
    })
  ]
}

So können Sie es direkt nutzen
Jetzt müssen wir verschiedene URLs im Modul basierend auf Umgebungsvariablen konfigurieren

lassen Sie URL = '';
 wenn (Prozess.Umgebung.NODE_ENV === 'Testen') {
   url = „http://my.test.cn“;
 } sonst wenn (Prozess.Umgebung.alpord === 'alpord') {
   url = „http://my.alpord.cn“;
 } sonst wenn (Prozess.Umgebung.NODE_ENV === 'Produktion') {
   url = „http://mein.produkt.cn“;
 } anders {
   url = „http://my.develop.cn“;
 }

oder

lassen Sie URL = '';
process.env.NODE_ENV === 'Produktion'?url = 'http://my.product.cn':url = 'http://my.test.cn';

Dies ist das Ende dieses Artikels zum Einstellen des Produktionsumgebungsmodus process.env.NODE_ENV. Weitere Informationen zum Einstellen des Produktionsumgebungsmodus process.env.NODE_ENV finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Tiefgreifendes Verständnis der Webpack-Konfiguration process.env.NODE_ENV

<<:  Docker löst das Problem, dass das Terminal kein Chinesisch eingeben kann

>>:  MySQL 8.0.21.0 Community Edition Installations-Tutorial (ausführliche Abbildungen)

Artikel empfehlen

Natives JS zur Implementierung des Flugzeug-Kriegsspiels

In diesem Artikelbeispiel wird der spezifische JS...

Docker stellt Containern dynamisch Ports zur Verfügung

Zeigen Sie die IP-Adresse des Containers an docke...

Anweisungen zur Verwendung der MySQL-Isolations-Leseansicht

Welche historische Version kann die aktuelle Tran...

Prinzipanalyse des UDP-Verbindungsobjekts und Anwendungsbeispiele

Ich habe zuvor zum Einstieg in UDP ein einfaches ...

Detaillierte Erläuterung der DOM-Stileinstellungen in vier Reaktionskomponenten

1. Inline-Stile Um Inline-Stile zum virtuellen DO...

Implementierungscodebeispiel für die lokale Verzeichniszuordnung von Nginx

Manchmal müssen Sie auf einige statische Ressourc...

So verwenden Sie den Linux-Befehl md5sum

01. Befehlsübersicht md5sum - MD5-Prüfcode berech...

So erstellen Sie ein Apr-Modul zur Tomcat-Leistungsoptimierung

Vorwort Tomcat ist ein weit verbreiteter Java-Web...

Linux Überprüfen Sie den Installationsort der Software einfache Methode

1. Überprüfen Sie den Installationspfad der Softw...

Ein kurzer Vortrag über das Klonen von JavaScript

Inhaltsverzeichnis 1. Oberflächliches Klonen 2. T...

Fallstudie zum Zusammenführen von JavaScript-Arrays

Methode 1: var a = [1,2,3]; var b=[4,5] a = a.con...