2

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 の依存関係) に移動し、呼び出し元のファイルを読み取るにはどうすればよいですか?

4

0 に答える 0