2

是否可以读取安装了我的 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 依赖项)并仍然让它读取调用者的文件?

4

0 回答 0