我的Package.bundle读取
var reqContext = require.context('./', true, /\.js$/);
reqContext.keys().map(reqContext);
其中基本上包含所有.js文件。
我希望表达式排除任何***。spec.js文件。这里有任何regexp来排除.spec.js文件吗?
答案 0 :(得分:22)
由于/\.js$/
允许所有.js
个文件(因为它基本上与字符串末尾的.js
匹配),并且您需要允许所有.js
个文件没有{ {1}}在他们面前,你需要一个带有负面前瞻的正则表达式:
.spec
详细:
/^(?!.*\.spec\.js$).*\.js$/
- 字符串开头^
- 该行不能以(?!.*\.spec\.js$)
结尾,如果有,则不会发生匹配.spec.js
- 除了换行符号之外的任何0 +字符.*
- \.js
序列.js
- 字符串的结尾。答案 1 :(得分:0)
尽管从技术上讲,可接受的答案是正确的,但您无需将此正则表达式添加到Webpack配置中。
这是因为webpack只编译通过require
或import
引用的文件,因此您的spec.js
文件将不包含在捆绑包中,因为它们不会导入到任何地方实际的代码。