2017-03-02 3 views
4

私はwebpackのCommonsChunkPluginの設定オプションの周りに頭を抱えようとしています。これらのオプションには、ブール型のchildrenプロパティが含まれています。これがtrueに設定されているときに何が起こるのか、falseに設定されているのかについて説明できますか? This documentationは、 "trueコモンズチャンクのすべての子が選択されている場合、"ページは決して "コモンズチャンクの子"を定義しないと言います。コモンズのチャンクを含むチャンクには子供がいますか?あるいは、おそらくコモンズのチャンクに含まれるモジュールは?さらに、子供を「選ぶ」ことの意味は何ですか?"子供たち"がCommonsChunkPluginの設定で何を参照しているのですか

+0

ページでは「選択」の意味を決して決して決してありません。 –

答えて

4

ここでのフレーズは少し誤解を招くと思います。関連するexample on the same documentation pageを見ると、それはより明確になります。

あなたは、コード分割して起動すると、用語のチャンクは、(あなたのスプリットポイントによって作成されたコード内のスプリット・ポイントによって作成された子を持つ

  • 応募チャンク、
  • チャンクを参照することができますあなたのエントリーチャンクの子)、または
  • CommonsChunkPluginでマージするコモンズチャンク。

ドキュメントでわかるように、コードをCommonsChunkPluginにマージするコモンズチャンクは、新しいコモンズチャンクまたは既存のチャンクのいずれかです。後者は、CommonsChunkPluginオプションのコモンズチャンクの「名前」プロパティとして既存のチャンクの名前を指定することによって実現されます。しかし私の経験では、アプリケーションのエントリポイントである既存のチャンクしか指定できません。たとえば、アプリケーションエントリポイントの名前が「app」の場合、次のCommonsChunkPluginオプションは、「app」の子の共通コードを「app」チャンクにマージする必要があります。

new webpack.optimize.CommonsChunkPlugin({ 
    name: 'app', 
    children: true 
}) 

代わりに、あなたは次のコードでそれを行うだろう、「アプリ」の子どもたちの共通のコードのための新たなコモンズのチャンクを作成したい、場合:

new webpack.optimize.CommonsChunkPlugin({ 
    name: 'app', 
    filename: 'common-code.js', 
    children: true, 
    async: true 
}) 

が戻って来ますコモンズチャンクのすべての子が選択されているtrueの場合、ドキュメント

からあなたの引用

"commons chunk"という単語はおそらく "entry chunk"に置き換えてください。

+0

「選択」とは何を意味するのでしょうか? –

+1

私が理解している方法では、「選択」とは、コモンズチャンクに移動するモジュールを決定する際に子チャンクが考慮されるかどうかを指します。たとえば、スプリットポイントが複数あるアプリがあります。分割ポイントごとに子チャンクが作成されます。コモンズ・チャンクに共通のロジックを抽出することに決めました。 "children:true"を指定すると、minChunksオプションで指定された条件を満たしている場合、すべての子チャンクからモジュールを自動的にコモンズチャンクに抽出するようプラグインに指示します。これにより、すべての子チャンクがコモンズチャンクに対して「選択」されました。 – Felix

+0

したがって、 'children:true'を使用すると、2つのチャンクが分割ポイントを使って非同期にロードされている場合(つまり、理解しているように、子チャンク)、2つのチャンクは同じ依存関係を使用します。 )はコモンズチャンク(同期してロードされる)に入るために「選択」されます。 –

関連する問題