Webpack プラグインをインストールしたリポジトリの内容を読み取ることはできますか?
基本的に、呼び出し元がアプリケーション コードでrequire.contextを使用して、ビルド時にいくつかのファイルを読み取り、それらをライブラリに渡す必要がある特定のJS ライブラリを作成しました。
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 の依存関係) に移動し、呼び出し元のファイルを読み取るにはどうすればよいですか?