CommonsChunkPlugin配置中"children"引用了什么

Bry*_*yan 6 webpack commonschunkplugin

我正试图围绕webpack的CommonsChunkPlugin的配置选项.这些选项包括布尔children属性.你能解释一下当设置为true时会发生什么,而不是设置为false时会发生什么?这个文档说"如果true公共块的所有子项都被选中",但页面从未定义"公共块的孩子".孩子们是否包含公共块?或者也许公共块的模块包括?此外,"选择"孩子的意义是什么?

Fel*_*lix 6

我认为这里的措辞有点误导.如果您查看同一文档页面上的相关示例,它将变得更加清晰.

一旦开始进行代码拆分,术语块就可以参考了

  • 您的输入块,其中包含由代码中的分割点创建的子项,
  • 您的分裂点(即您的输入块的子项)创建的块,或
  • 您与CommonsChunkPlugin合并的公共块.

现在,正如您在文档中看到的那样,将CommonsChunkPlugin合并到CommonsChunkPlugin中的公共块可以是新的公共块或现有的块.后者是通过将现有块的名称指定为CommonsChunkPlugin选项中的commons块的"name"属性来实现的.但是,根据我的经验,您只能指定作为应用程序入口点的现有块.例如,如果您的应用程序入口点的名称为"app",则以下CommonsChunkPlugin选项应将"app"子项中的公共代码合并到"app"块中.

new webpack.optimize.CommonsChunkPlugin({
  name: 'app',
  children: true
})
Run Code Online (Sandbox Code Playgroud)

相反,如果您想为"app"子代的公共代码创建一个新的公共块,您可以使用以下代码:

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

回到你的文档引用

如果为真,则选择公共块的所有子项

"commons chunk"这个词可能应该被"entry chunk"所取代.