是否可以在 webpack 的 require.context 调用中使用通配符?



我只希望 Webpack 查看名为 ".stories" 的目录中的文件,但它们可以任意位于src/目录结构中的任何位置。

例如,我对此的天真尝试如下所示:

/*
src/
some.story.js <-- don't get this
|_components/
|_Button/
|_ .stories/ <--
|_ index.js <-- ignore this
|_ utils.js <-- ignore this
|_ main.story.js <-- get this
|_Forms/
|_ TextField
|_ .stories/ <-- same kind of thing
*/


// require.context API
// require.context(directory to search, shouldSearchSubDirs?, fileNameRegex)
require.context('src/**/.stories', true, /.story.js$/)

到目前为止,API 似乎希望我对文件名进行所有模式匹配。但是仅文件名不足以排除其他目录中.story.js文件。我想允许.story.js目录之外.stories/文件,并让 Webpack 忽略它们。

这可能吗?我错过了什么?

在阅读官方文档时,这意味着第一个参数指定了一个特定的目录:

它允许您传入一个目录进行搜索,一个标志指示 是否也应该搜索子目录,以及常规 要匹配文件的表达式。

对此的一种解读与我的目标背道而驰,但没有什么明确说明这是不可能的。Webpack 是一个复杂的工具,很容易误解它的功能。

我知道已经很久了。但我会为其他人解决答案。

require.context('../src/components/', true, /.stories/[a-zA-Z0-9]+.story.js$/);

最新更新