webpack 中的条件需求文件

gar*_*ryx 4 javascript uglifyjs webpack webpack-2 tree-shaking

我只想将文件捆绑到我的生产版本中,除非它不是用于DEBUG;

所以我使用webpack.DefinePlugin并设置了变量DEBUG === true

webpack.UglifyJsPlugin使用默认选项进行配置

在 js 文件中,我喜欢这样:

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

我检查了最终的包文件,A 被替换为 null(所以DefinePlugin工作正常),但some-debug.js文件的内容仍然在包 js 中。

是否可以让 webpack 不需要该文件?

ps:我想我可以resolve.alias用来解决'./some-debug.js' --> undefined. 但我想保持我的 webpack.config.js 通用,不想应用太多resolve.alias条目。

谢谢

Sta*_*rov 5

它不适用于三元运算符。

let A;  
if (DEBUG === true) {
  A = require('./some-debug.js');
}
Run Code Online (Sandbox Code Playgroud)