2017-02-07 2 views
1

In meiner Knotenanwendung versuche ich, zwischen meiner Entwicklungsversion der Anwendung und der Produktionsversion zu unterscheiden. Als ich webpack-dev-Server ausgeführt werden, verwende ich den folgenden Befehl ein:Umgebungsvariablen beim Ausführen der Knotenanwendung mit webpack-dev-server festlegen?

NODE_ENV = Entwicklung webpack-dev-Server --inline --Heißes --content-Basis ./public

In meiner Anwendung, ich versuchen Sie, was in NODE_ENV mit process.env.NODE_ENV zu lesen, aber es scheint Null zu sein. Ist das nicht der richtige Weg, um Umgebungsvariablen bei der Verwendung von webpack-dev-server zu setzen?

Edit: Das ist in meinem Reagieren Anwendung. Ich benutze Express, um die Anwendung in der Produktion zu bedienen, aber ich benutze nur webpack-dev-server für Entwicklungszwecke.

+0

Webpack Dev-Server ist für die Bedienung statische Clientside-Dateien, nicht server Code. Wo suchen Sie nach der Variable? – Paul

+0

Oh Entschuldigung, ich sollte klarstellen, dass ich Web-Pack-dev-Server für meine React-Anwendung verwende. In meiner React-Anwendung möchte ich eine if-Anweisung haben, um zu sehen, ob ich mich in Entwicklung oder Produktion befinde. Ich würde zwei verschiedene URLs verwenden, wenn ich einen API-Aufruf (localhost vs. production link) mache, abhängig davon, ob ich in Entwicklung oder Produktion bin. – Andrew

Antwort

2

Das Festlegen der Umgebungsvariablen NODE_ENV, auf die über process.env.NODE_ENV zur Laufzeit zugegriffen werden kann, ist für Node.js spezifisch und steht in Ihrem clientseitigen Code nicht zur Verfügung. Um kann es verfügbar Sie webpack die Verwendung DefinePlugin in Ihrem Clientside-Code zu machen:

plugins: [ 
    new webpack.DefinePlugin({ 
    'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) 
    }) 
] 

Weitere Informationen über das Festlegen von Umgebungsvariablen: https://webpack.js.org/guides/production-build/#node-environment-variable

Verwandte Themen