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

So richten Sie geplante Sicherungsaufgaben in Linux CentOS ein

Implementierungsvorbereitung # Der Dateipfad muss...

Vue.js verwendet Element-ui, um das Navigationsmenü zu implementieren

In diesem Artikel wird der spezifische Code zur I...

Docker+Gitlab+Jenkins erstellt automatisierte Bereitstellung von Grund auf

Inhaltsverzeichnis Vorwort: 1. Docker installiere...

Vue3 kapselt die Textskelett-Effektkomponente der Seitennavigation

Vue3-Projektkapselung Seitennavigation Textskelet...

Ist MySQL eine relationale Datenbank?

MySQL ist ein relationales Datenbankverwaltungssy...

Implementierung der MySQL Master-Slave-Statusprüfung

1. Überprüfen Sie den Synchronisierungsstatus der...

Zusammenfassung der Web-Frontend-Kenntnisse (persönliche praktische Erfahrung)

1. Als ich heute eine Seite erstellte, stieß ich a...

mysql5.7-Remotezugriffseinstellungen

Das Einrichten des Fernzugriffs in mysql5.7 funkt...

Analyse des Uniapp-Einsteiger-NVUE-Klettergrubenrekords

Inhaltsverzeichnis Vorwort Hallo Welt Bild Rahmen...

Zusammenfassung der Erfahrungen mit der Web-Frontend-Entwicklung

XML-Dateien sollten so weit wie möglich in UTF-8 ...