我试图在 Webpack 的 require.context
中包含我的 Istanbul 尔记者应该涵盖的所有文件。
我想包含/要求 app
下没有 .test.js
扩展名的所有文件。
// internals/testing/test-bundler.js
const context = require.context('../../app', true, /^.*(?!(\.test|internals.*))\.js$/);
context.keys().forEach(context);
我的文件结构是:
app/components/
app/containers/
app/decorators/
app/orm/
app/pages/
app/store/
app/tests/
app/utils/
app/app.js
app/reducers.js
app/routes.js
internals/testing/test-bundler.js
显然我的正则表达式不起作用,因为在覆盖率报告中我看到了所有 .test.js
文件甚至 internals/testing/test-bundler.js
文件。
我做错了什么?
最佳答案
您需要了解否定前瞻使用拒绝的部分。如果您在第一个正斜杠之后立即执行此操作,则效果很好。
并且您想要在斜线后拒绝 .*test
,而不是直接在它后面的 test
。
/^(?!internals).*\/(?!.*test).*\.js$/
或者更具体地说,不允许在路径名中使用 internals
。
也不以 test.js
结尾:
^(?!.*(?:internals|test.js$)).*\.js$
关于javascript - 从 Webpack 的 require.context 中排除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075646/