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

时间:2017-07-18 18:57:34

标签: javascript webpack

我只希望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忽略它们。

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

在阅读official documentation时,暗示第一个参数指定了一个特定目录:

  

它允许您传入一个目录进行搜索,一个标志指示   是否应该搜索子目录,并定期搜索   表达式匹配文件。

读到这一点与我的目标是对立的,但没有任何明确的说明这是不可能的。 Webpack是一个复杂的工具,很容易误解其功能。

1 个答案:

答案 0 :(得分:0)

我知道已经很久了。但是我会为其他人确定答案。

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