Регулярное выражение в webpack loader exclude / include config не работает

Я пытаюсь применить babel-loader к определенному шаблону модулей, скажем фу.*, под папки 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: {
    ...
  }
}

однако, если я использую string вместо RegEx, он работает для одного папка:

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

это указывает мне на Regex работает не так, как ожидалось.

у кого-нибудь есть RegEx рабочий в Include/Exclude поле?

1 ответов


оказывается, это вопрос разделителя путей в Windows, который я использую. Следующий отрицательный синтаксис lookahead работает и является агностиком ОС:

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