如何从捆绑.spec.js文件中排除webpack

How to exclude webpack from bundling .spec.js files

本文关键字:文件 排除 webpack js spec      更新时间:2023-09-26

我的Package.bundle读取

var reqContext = require.context('./', true, /'.js$/);
reqContext.keys().map(reqContext);

基本上包括所有的.js文件。

我希望表达式排除任何***.spec.js文件。这里有排除.spec.js文件的regexp吗?

由于/'.js$/允许所有.js文件(因为它基本上与字符串末尾的.js匹配(,并且您需要允许所有之前没有.spec.js文件,因此您需要一个具有负前瞻性的regex:

/^(?!.*'.spec'.js$).*'.js$/

查看此regex演示

详细信息

  • ^-字符串的开头
  • (?!.*'.spec'.js$)-行不能以.spec.js结尾,如果是,则不会发生匹配
  • .*-换行符以外的任何0+个字符
  • '.js-.js序列
  • $—字符串的末尾

尽管接受的答案在技术上是正确的,但您不需要将此regex添加到您的webpack配置中。

这是因为webpack只编译通过requireimport引用的文件,因此您的spec.js文件不会包含在捆绑包中,因为它们不会在实际代码中的任何位置导入。