2017-07-05 8 views
2

Ich möchte die Dateien nur dann in meinen Produktions-Build einbinden, wenn es nicht für DEBUG ist;Bedingte require-Datei im Webpack

Also habe ich webpack.DefinePlugin verwenden und die Variable DEBUG === true setzen.

Auch Config webpack.UglifyJsPlugin mit Standardoptionen

Und in der JS-Datei, ich tun, wie folgt:

const A = DEBUG === true ? null : require('./some-debug.js'); 
//do things with A, for example 
console.log(A) 

ich die letzte Bundle-Datei überprüft, A mit null ersetzt wird (so DefinePlugin funktioniert gut), aber der Inhalt von some-debug.js Datei ist immer noch im Bundle js.

Ist es möglich, dass webpack die Datei nicht benötigt?

ps: Ich denke, ich kann resolve.alias verwenden, um './some-debug.js' --> undefined zu lösen. Aber ich möchte meine webpack.config.js generisch halten, möchte nicht zu viele resolve.alias Einträge anwenden.

Dank

Antwort

1

Es funktioniert nicht mit ternären Operator.

let A; 
if (DEBUG === true) { 
    A = require('./some-debug.js'); 
} 
+0

Danke, es funktioniert! – garyx