是否可以读取安装了我的 Webpack 插件的 repo 的内容?
本质上,我编写了一个特定的JS 库,它要求调用者在其应用程序代码中使用require.context在构建时读取一些文件并将它们传递给库:
import Library from 'library';
new Library({
requires: require.context('./foo', false, /\w+\.js$/),
});
我想减轻用户的负担,只需require.context
在库中进行调用以将 API 简化为:
import Library from 'library';
new Library();
但是,它不起作用,因为库不知道应用程序代码的 Webpack 构建何时运行。
我尝试在库中编写一个 Webpack 插件:
const path = require('path');
class TestPlugin {
apply(compiler) {
compiler.hooks.beforeRun.tap('TestPlugin', () => {
console.log(
`Path where webpack was executed: ${compiler.options.context}`
);
});
}
}
module.exports = {
...
plugins: [new TestPlugin()],
};
但是,这只在构建库本身时调用,而不是在构建应用程序时调用。
如何将require.context
调用移动到库中(这是 NPM 依赖项)并仍然让它读取调用者的文件?