Webpack加载器中的RegEx排除/包含配置不起作用

时间:2016-07-04 17:29:59

标签: webpack

我正在尝试将babel-loader应用于特定的模块模式,比如 foo。* ,除了我的应用之外,还可以在 node_modules 下。

node_modules 下的其他模块应该像往常一样跳过。首先,我尝试使用否定前瞻没有工作:

{
  test: /\.js$/,
  exclude: [
    /node_modules\/(?!foo).*/
  ],
  loader: 'babel-loader',
  query: {
    ...
  }
}, 

然后我分成两个装载机而且也没有工作:

{
  test: /\.js$/,
  exclude: [
    path.resolve(_path, "node_modules")
  ],
  loader: 'babel-loader',
  query: {
    ...
  }
}, 
{
  test: /\.js$/,
  include: [
    /node_modules\/foo.*/
  ],
  loader: 'babel-loader',
  query: {
    ...
  }
}

但是,如果我使用字符串而不是RegEx,它适用于一个文件夹:

include: [
  path.resolve(_path, "node_modules/foo")
],

这表明正则表达式未按预期工作。

是否有人在Include/Exclude字段中工作 RegEx

1 个答案:

答案 0 :(得分:11)

事实证明,这是Windows中的路径分隔符,我正在使用它。以下否定前瞻语法有效且与操作系统无关:

new RegExp('node_modules\\'+path.sep+'(?!foo).*')