Webpack排除文件夹

时间:2017-05-12 23:44:38

标签: javascript webpack node-modules webpack-2 babel-loader

我通过Webpack推送一个相当大的应用程序,它从两个库文件夹中提取:thirdparty和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

我是否误解了包含/排除的功能,或者这是Webpack的错误?

1 个答案:

答案 0 :(得分:1)

规则不决定webpack正在解析哪些文件,而是仅应用于包含的文件并满足条件。即使你根本没有规则,webpack仍会解析相同的文件,因为你在某处导入它们。

您可以排除使用externals选项捆绑的模块。这些外部因素必须以某种方式出现在运行时(例如,加载到<script>标记中)。

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

相关问题