我喜欢与RequireJS相同的功能empty:
http://requirejs.org/docs/optimization.html#empty
我的用例是我将jquery-migrate
包含在开发中,但我想在为生产而构建时将其排除在外。
使用IgnorePlugin
只是不包含它,当require
在代码中时,它会抛出错误(Uncaught Error: Cannot find module "jquery-migrate"
)。
我想要发生的只是返回undefined或类似内容(如RequireJS中的empty:
)。我希望不要触及代码中的导入,只需将其配置为返回undefined
。
编辑:如果我将替换指向空文件,则使用NormalModuleReplacementPlugin
有效。但是为此保留一个空文件似乎是不必要的。
答案 0 :(得分:17)
我使用null-loader来消隐模块。 noop-loader可以用于配置中较不尴尬的if-else。
尝试:
rules: [{
test: /jquery-migrate/,
use: IS_DEV ? 'null-loader' : 'noop-loader'
}]