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. 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. 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. 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 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:
|
<<: Docker löst das Problem, dass das Terminal kein Chinesisch eingeben kann
>>: MySQL 8.0.21.0 Community Edition Installations-Tutorial (ausführliche Abbildungen)
Vorwort <br />Ich arbeite schon eine ganze W...
Implementierungsvorbereitung # Der Dateipfad muss...
In diesem Artikel wird der spezifische Code zur I...
Inhaltsverzeichnis Vorwort: 1. Docker installiere...
Vue3-Projektkapselung Seitennavigation Textskelet...
html ¶ <html></html> html:xml ¶ <h...
MySQL ist ein relationales Datenbankverwaltungssy...
1. Überprüfen Sie den Synchronisierungsstatus der...
1. Als ich heute eine Seite erstellte, stieß ich a...
Inhaltsverzeichnis Installieren Sie Tomcat Laden ...
Das Einrichten des Fernzugriffs in mysql5.7 funkt...
Die Beziehung zwischen Tomcat-Protokollen Ein Bil...
Inhaltsverzeichnis Vorwort Hallo Welt Bild Rahmen...
XML-Dateien sollten so weit wie möglich in UTF-8 ...
1. Zunächst muss die reine HTML-Datei einen Eintr...