gpt4 book ai didi

javascript - 如何巧妙地限制Webpack `require.context`?

转载 作者:数据小太阳 更新时间:2023-10-29 05:09:59 28 4
gpt4 key购买 nike

我正在开发一点static site generator在 Webpack 和 React 之上。目前,我正在使它更具活力。其中一部分是使其更具可配置性。

给定这样的站点结构

.
├── _book
├── assets
├── build
├── drafts
├── manuscript
├── node_modules
├── pages
├── project_source
└── styles

我只想从某个目录或多个目录中获取文件。在这种情况下,需要来自 manuscript 的 Markdown 文件就足够了。天真地 var req = require.context('manuscript', true,/^\.\/.*\.md$/) 会起作用。

问题是当我通过站点生成器配置传递目录时,这需要变成动态的。由于 require.context 依赖于固定值,我认为我需要使用类似 var req = require.context('.', true,/^.*\. md$/) 然后检查 req.keys() 以匹配我的配置。

在实践中这是非常慢的,因为它会遍历整棵树!特别是 node_modules 可以包含很多文件,这是应该不惜一切代价避免的事情。

有没有一种巧妙的方法可以将 node_modulesrequire.context 中排除?我想某种形式的 Regex 可能会起作用,但我对其他想法持开放态度。

最佳答案

你可以试试:

var req = require.context('.', true, /^((?![\\/]node_modules|vendor[\\/]).)*\.md$/);

从匹配中排除包含 node_modulesvendor 文件夹的路径。

关于javascript - 如何巧妙地限制Webpack `require.context`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30196888/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com