我的应用中有一个子项目,其中包含自己的node_modules/
等。它在脚本方面与主项目隔离,但应该在其中。 这可能没有意义,但这是真的。
问题是,node_modules(至少)干扰了webpack。我收到了Duplicate Identifier
,Cannot redeclare block-scoped variable
,...
只需删除子项目目录,捆绑即可开始工作。
最佳解决方案方案是在webpack配置中添加一个排除条目,但事情并非如此。
我该如何解决这个问题?我无法找到解决方案!
答案 0 :(得分:0)
您需要在装载程序中设置排除道具。
https://webpack.js.org/configuration/module/#rule-exclude
您可以使用NODE_ENV和脚本控制何时捆绑或不捆绑模块。我将它用于开发环境,而不是每次都等待webpack构建所有node_modules。
如果检查NODE_ENV并构建节点模块或不使用加载器中的排除条件,那么这是一个简单的内联。
var FASTBUILD = process.env.NODE_ENV == 'fastbuild';
//This example is for loading all js
module: {
rules: [
FASTBUILD ? {test: /\.js?$/, loader: "your-loader-here", exclude: path.resolve(__dirname, "./node_modules")} : {test: /\.js?$/, loader: your-loader-here"}
]
}
您可以在package.json中使用此功能,以便只使用npm run dev
:
"scripts": {
//this if for build WITHOUT node_modules
"dev": "set NODE_ENV=fastbuild&&webpack --watch"
}
PS:这是为Windows配置并使用Webpack 2.2