モジュールのインポート パスの問題は Webpack のコンパイル中に解決できますか?
<p>環境変数に基づいてバンドル内の特定のコンポーネントのみを含むビルドを作成したいと考えています。 </p>
<p>たとえば、次のようにコンポーネントをインポートすると: </p>
<pre class="brush:php;toolbar:false;">「@/components/Module1」から Module1 をインポート</pre>
<p>インポートが次のようになるようにパスを実際に変換したいと思います: </p>
<pre class="brush:php;toolbar:false;">import Module1 from '@/components/brands/' process.env.APP_BRAND 'Module1'</pre>
<p>すべてのインポートに対してこれを行うのではなく、特定のインポート (ブランド バージョンを持つモジュールなど) に対してのみこれを行いたいので、インポート パスの前に < code>!brand! のようなものを追加したいと思います。 </code>、これはパス変換を適用するためのインジケーターになります。
したがって、上記のロジックは次のインポート パスに対してのみ実行する必要があります: </p>
<pre class="brush:php;toolbar:false;">「!brand!@/components/Module1」から Module1 をインポート</pre>
<p><code>process.env.APP_BRAND</code> が false の場合、元のインポートを保持したいだけです (例: <code>!brand!</code> プレフィックスをパス )。 </p>
<p>重要な点は、Webpack がモジュールを静的に分析して最適化されたビルドを作成できるように、これをビルド時に実行する必要があるということです。これは実現可能でしょうか?このパス変換ロジックを何とか追加する必要があると思うのですが、どうすればよいでしょうか?ローダーやプラグインを作成する必要がありますか、それとも既製のソリューションはありますか? </p>
<p>Webpack 5 を使用しています。 </p>