2016-06-28 4 views
1

Webpackでは、指定したコンテンツのみを含む通常(非エントリ)非同期チャンクを作成するにはどうすればいいですか?Webpack - 非同期コモンズチャンクを手動で作成する

例えば、moduleAmoduleBがあるとします。どちらもオンデマンドでロードされるのはSystem.importです。 moduleAmoduleBはどちらも/sharedディレクトリ内のさまざまなコンテンツを使用します。どのようにして非同期チャンクを作成すると、すべての内容が共有されますか?

最も近い the docsを示しているように見える

chunks配列である(実際の生活の中でそこだけmoduleAmoduleBsharedで何かを共有するよりもなるだろう)、それはされる、共通のコンテンツを分析するためにチャンクのようです共通のチャンクに抽出されます。

この質問はthis answer(Webpackクリエイターによって書かれています)の拡張です。

私は思ったんだけどどのように(可能な場合)を手動にそれらをを行く何を指定することで、あなたの一般的なチャンクに何が起こっをより細かく、よりきめの細かい制御を取ることができます。

+0

DllPluginは、私が非同期読み込みのアスペクトについてわからないことを除いて、あなたが望むように_bit_を鳴らします。あなたはそれをまったく見ましたか?そうでない場合は、DllPluginに関する記事へのリンクがいくつかあります(https://github.com/markerikson/react-redux-links/blob/master/webpack-advanced-techniques.md)。 – markerikson

答えて

2

このプラグインは、共通の親を持つ少なくとも2つのオンデマンドロードチャンクから別の非同期コモンズチャンクに使用されるすべてのモジュールをsharedから移動します。

共通の親チャンク(つまり、ルータ)を知っている場合は、nameパラメータをオプションで渡すことができます。

new CommonsChunkPlugin({ 
    async: true, 
    children: true, 
    minChunks: function(module, count) { 
    return module.resource && 
     module.resource.indexOf("/path/to/shared/") === 0 && 
     count >= 2; 
    } 
}) 
関連する問題