Webpack加载器中的RegEx exclude/include配置不起作用

abb*_*bbr 11 webpack

我试图在我的应用程序之外应用于node_modulesbabel-loader的模块的特定模式,比如foo.*.

应该像往常一样跳过node_modules下的其他模块.首先我尝试使用负面预测不起作用:

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

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

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

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

include: [
  path.resolve(_path, "node_modules/foo")
],
Run Code Online (Sandbox Code Playgroud)

这向我表明正则表达式没有按预期工作.

有没有人让RegExInclude/Exclude现场工作?

abb*_*bbr 12

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

new RegExp('node_modules\\'+path.sep+'(?!foo).*')
Run Code Online (Sandbox Code Playgroud)