2015-10-19 2 views
13

でのWebPACKに必要と私はcommon-entry.jsこのような何かに期待する:動的WebPACKのコンフィグ</p> <pre><code>... entry: { 'bundle-with-dependency-a': 'common-entry.js', 'bundle-with-dependency-b': 'common-entry.js' }, resolve: { alias: { 'dep-a': ..., 'dep-b': ... }, }, </code></pre> <p>があります考慮すると、ビルド時

require('dep-' + entryName.slice(-1)); 

すなわち、私はconfigから特定のrequireの定義を提供したいと思います。

問題は2つ以上の依存オプションが存在する可能性があるため、コピーを回避します。 JSONPでチャンクを要求するのではなく、ビルド時にこれを実行しようとしています。

これをどのように動的にする必要がありますか?

私がここに持っている唯一のオプションは、それぞれのdepごとに異なる設定をすることですが、これは単一ではなく複数のWebpackパスを作る必要があります。それほど便利ではありません。 使用

答えて

4

webpack.config.js

{ 
    entry: { 
    'bundle-with-dependency-a': 'imports?depName=>"dep-a"!./common-entry.js', 
    'bundle-with-dependency-b': 'imports?depName=>"dep-b"!./common-entry.js', 
    }, 
    // ... 
} 

depName変数は、次にcommon-entry.jsモジュールにさらされます。

+0

これはいいですね、私はローダーがエントリーで使用できることを知っているとは確信していません。私は '輸入'以外の方法があるかどうか疑問に思うが、ローダークエリ文字列をかなり長くするプレフィックス( 'a'または 'b')を持つ複数のデプスが存在する可能性がある。 – estus

+0

次に、独自のローダーを作成するか、クエリ文字列を生成する関数を作成することをお勧めします。例: 'imports({depName: 'dep-a'})+ '。/ common-entry.js'' –

+0

はい、クエリを構築するだけで十分です。他の迂回路があるのだろうか? 'context'とContextReplacementPlugin(Webpackのドキュメンテーションは、潜在的な使用には不思議なほど不足しています)。 – estus

関連する問題