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

Jos*_*ley 3 javascript webpack

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

\n\n

例如,我的 na\xc3\xafve 尝试如下所示:

\n\n
/*\nsrc/\n  some.story.js <-- don\'t get this\n  |_components/\n    |_Button/\n      |_ .stories/ <--\n        |_ index.js <-- ignore this\n        |_ utils.js <-- ignore this\n        |_ main.story.js <-- get this\n    |_Forms/\n      |_ TextField\n        |_ .stories/ <-- same kind of thing\n   */\n\n\n\n\n// require.context API\n// require.context(directory to search, shouldSearchSubDirs?, fileNameRegex)\n\nrequire.context(\'src/**/.stories\', true, /\\.story\\.js$/)\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

这可能吗?我缺少什么?

\n\n

阅读官方文档时,含义是第一个参数指定一个特定目录:

\n\n
\n

它允许您传入要搜索的目录、指示是否也应该搜索子目录的标志以及用于匹配文件的正则表达式。

\n
\n\n

对此的解读与我的目标相反,但没有任何内容明确表明这是不可能的。Webpack 是一个复杂的工具,很容易误解它的功能。

\n

小智 5

我知道已经过去很长时间了。但我会为其他人解决答案。

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