Webpack 排除文件夹

Webpack Exclude folder

我正在通过 Webpack 推送一个相当大的应用程序,它从两个库文件夹中提取:第三方和 node_modules。我已经为 js 文件设置了我的规则:

{
    test: /\.js$/,
    loader: 'babel-loader',
    include: [
      /src\/js\/client/
    ],
    exclude: [
      /node_modules/,
      /thirdparty/
    ]
  }

我希望 webpack 不会解析这两个目录中任何一个目录下的任何文件夹,但我遇到了库的错误。例如:

WARNING in ./~/durandal/js/system.js
51:8-15 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

WARNING in ./~/durandal/js/system.js
52:8-15 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

ERROR in ./~/durandal/js/system.js
Cannot statically analyse 'require(..., ...)' in line 278
 @ ./src/js/client/lib/durandal/overrides/views.js 2:0-37
 @ ./src/js/client/index.js

我是不是误解了 include/exclude 的功能,或者这是 Webpack 的错误?

规则不决定webpack解析哪些文件,而是只适用于被包含且满足条件的文件。即使你根本没有规则,webpack 仍然会解析相同的文件,因为你将它们导入某处。

您可以使用 externals 选项将模块排除在外。这些外部组件必须以某种方式在运行时出现(例如加载在 <script> 标签中)。

如果你只是想让webpack不解析文件,但仍然包含它们,你可以配置module.noParse。但正如文档所说,它们不应包含任何导入。