【问题标题】:RegEx in Webpack loader exclude/include config doesn't workWebpack 加载程序中的 RegEx 排除/包含配置不起作用
【发布时间】:2016-11-06 11:36:09
【问题描述】:

我正在尝试将 babel-loader 应用于特定模式的模块,例如 foo.*,除了我的应用程序之外,在 node_modules 下。

node_modules 下的其他模块应照常跳过。首先我尝试使用负前瞻没有工作:

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

然后我拆分为两个loader,也没有工作:

{
  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")
],

这表明 Regex 没有按预期工作。

有人在Include/Exclude 领域工作过RegEx吗?

【问题讨论】:

    标签: webpack


    【解决方案1】:

    原来这是我正在使用的 Windows 中的路径分隔符问题。以下否定前瞻语法有效且与操作系统无关:

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

    【讨论】:

    • 另一种选择是对操作系统特定的路径分隔符使用 OR:... exclude: [ /node_modules(?!(\/|\\)foo)/ ] ...
    猜你喜欢
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多