翻訳サービス用の Webpack プラグインの作成に問題があります。
目標は次のとおりです。
- コンパイル中に必要なすべてのモジュールの名前 (およびソース コード) を取得します。含まれているソース コードをスキャンして特別な
t()
機能を使用できるようにする必要がありますが、バンドルに含まれるモジュールのみをスキャンしたいと考えています (ビルド構成によっては、すべてのプロジェクト モジュールのサブセットになる可能性があります)。 - 収集したモジュールに基づいて、追加のモジュール (翻訳付き) をその場で作成し、それらをバンドルに追加したいと考えています。これらのモジュールは、独自の依存関係をインポートできる必要があります。
追加の要件は、Webpack のコード分割機能が、オンザフライで作成されたモジュールで動作することです (それらを個別のファイルに抽出したい - などbundle.[lang].js
)。また、これはこの質問の範囲外かもしれませんが、これらのチャンクを翻訳付きでオプションにする必要があります (したがって、すべての言語をロードする必要はなく、1 つだけをロードする必要があります)。
詳細については、https://github.com/ckeditor/ckeditor5/issues/387を参照してください。
複数のソリューションを試してきましたが、Webpack 2 のドキュメントはあまり役に立ちません。モジュール解決フックをリッスンすることですべてのモジュールを取得できますbefore-resolve
(addEntry
いつ使用できますか?)。
Webpack プラグインと Webpack ローダーを接続することも考えていましたが (必要な機能はWebpack の style-loaderにかなり似ているため)、プラグイン レベルからは、ローダー自体ではなく、ローダーへのパスのみを追加できるので、できます。構成オブジェクトをパラメーターとして渡す – 私は間違っていますか?
PS。私は Webpack 2 を使用しています。要件が奇妙に思われる場合は、 https ://github.com/ckeditor/ckeditor5/issues/387を参照してください:)。