我的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只编译通过require
或import
引用的文件,因此您的spec.js
文件不会包含在捆绑包中,因为它们不会在实际代码中的任何位置导入。