2016-09-19 2 views
0

Ich benutze derzeit Webpack mit eckigen und ich würde gerne Variablen injizieren/verwenden je nach Wetter ist es Entwicklung oder Produktion.Webpack: Verwenden von Prod/Dev-Dateien in Angular/Javascript?

Ich habe Webpack bereits Setup für diese zu erkennen, ob prod oder dev, aber ich habe ein Problem beim Senden von Variablen zu Javascript/eckig.

Ich dachte zunächst, die Lösung verwendet DefinePlugin, aber dies ist nicht als eine globale Variable in Javascript/Angular verfügbar.

new webpack.DefinePlugin({ 
    API_URL: JSON.stringify('testing') 
    }), 

Kennt jemand eine Lösung für dieses Problem. Ich muss nur Variablen oder Dateien senden, um winkelabhängig von der Produktion oder Entwicklung abhängig zu sein. Ein Beispiel ist die Verwendung einer API-Back-End-Basis-URL. Es unterscheidet sich in der Entwicklung zur Produktion.

Zeilen zu kommen scheint eine so schlechte Idee zu sein, wenn es einen Weg gibt, dies automatisiert zu unterstützen.

Wie ich schon sagte, ich habe bereits eine Variable in Webpack zu entscheiden, ob seine Produktion oder dev aber nur ein Problem early/Javascript haben.

Irgendwelche Ideen?

Dank ..

+1

'API_URL' sollte global verfügbar sein, siehe http://stackoverflow.com/questions/34479372/use-node-env-in-source-code-to-control-build-process-with-webpack – Oskar

+1

Sie müssen feststellen, dass 'DefinePlugin' zum Zeitpunkt _compile_ arbeitet. Mit anderen Worten, es ersetzt das Vorkommen von "API_URL" in Ihrem Code durch seinen definierten Wert, wenn es gebündelt wird. Es ist also nur für Code verfügbar, der von Webpack verarbeitet wird. – robertklep

+0

Ah ja so ist es. Danke – Martin

Antwort

1

Getestet habe ich nur die DefinePlugin nach dem Vorbild in der docs. Es scheint für mich zu funktionieren. Vielleicht Checkout Aktualisierung Ihres Webpack und DefinePlugin Version?

Wenn Sie einen Transpiler wie babel verwenden, können Sie auch Umgebungsvariablen unter Verwendung der inline environment variables transform injizieren.

+0

Ja, es funktioniert, war ich. Ich mag das Babel-Plugin - auch sehr nett – Martin

Verwandte Themen