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

时间:2016-09-28 18:41:17

标签: javascript regex webpack

我的Package.bundle读取

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

reqContext.keys().map(reqContext);

其中基本上包含所有.js文件。

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

2 个答案:

答案 0 :(得分:22)

由于/\.js$/允许所有.js个文件(因为它基本上与字符串末尾的.js匹配),并且您需要允许所有.js个文件没有{ {1}}在他们面前,你需要一个带有负面前瞻的正则表达式:

.spec

请参阅this regex demo

详细

  • /^(?!.*\.spec\.js$).*\.js$/ - 字符串开头
  • ^ - 该行不能以(?!.*\.spec\.js$)结尾,如果有,则不会发生匹配
  • .spec.js - 除了换行符号之外的任何0 +字符
  • .* - \.js序列
  • .js - 字符串的结尾。

答案 1 :(得分:0)

尽管从技术上讲,可接受的答案是正确的,但您无需将此正则表达式添加到Webpack配置中。

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