节点模块的 require.context 不适用于链接包

jon*_*wig 5 require node.js node-modules webpack

我创建了一个插件网站。每个插件都遵循一定的名称标准和合同。在我的 main.js 中,我按照名称标准“动态”加载所有包:

const context = require.context("../../node_modules", true, /plugin\-\w+\/dist\/(index\.js|styles\.css)$/)
Run Code Online (Sandbox Code Playgroud)

这需要整个 node_modules 文件夹的上下文并加载所有名为“plugin-X”的模块。它从这些模块中查找“dist/index.js”和“dist/styles.css”。那些后来被导入:

context.keys().forEach(path => {/* do stuff */ })
Run Code Online (Sandbox Code Playgroud)

只要使用 npm install path/to/tgz 安装软件包,这就会非常有效。然而,这并没有带来愉快的开发体验。因此,在我的 plugin-X 文件夹中,我使用“npm link”,而在我的网站中,我使用“npm link plugin-X”。

当我现在启动 webpack 时,整个事情在创建 15K 文件句柄后爆炸。如果我删除“plugin-X”中的 node_modules 文件夹,它就可以工作。但是,我需要 node_modules 来使用 babel 和其他东西进行构建,以识别 src 文件夹中的更改以重建并将新脚本放入 dist 文件夹中。

有什么办法可以做到这一点吗?或者也许我在研究如何做到这一点时错过了另一个选择?

问候