網站搜尋

javascript - 在 webpack 中有條件地引入文件


我只想在不是為 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)

我檢查了最終的打包文件,A 被替換為 null(因此 DefinePlugin 正常工作),但 some-debug.js 文件的內容仍然在打包的 js 中。

有可能讓 webpack 不需要這個檔案嗎?

附註:我想我可以使用 resolve.alias 來解析 './some-debug.js' --> undefined。但是我想保持我的 webpack.config.js 通用,不想應用太多的 resolve.alias 條目。

謝謝

答案#1

它無法與三元運算子一起使用。

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