从webpack中排除目录

时间:2017-03-15 10:02:06

标签: webpack

我的应用中有一个子项目,其中包含自己的node_modules/等。它在脚本方面与主项目隔离,但应该在其中。 这可能没有意义,但这是真的

问题是,node_modules(至少)干扰了webpack。我收到了Duplicate IdentifierCannot redeclare block-scoped variable,...

等错误

只需删除子项目目录,捆绑即可开始工作。

最佳解决方案方案是在webpack配置中添加一个排除条目,但事情并非如此。

我该如何解决这个问题?我无法找到解决方案!

1 个答案:

答案 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