我应该在生产中使用vendorChunk吗

Sci*_*ion 11 angular

我使用Angular6,我在想,如果这是更好地集"vendorChunk"truefalse生产。我知道它的作用,但是我不确定在生产中使用的最佳价值。

小智 14

我正在搜索同样的问题,并且在 Angular 文档https://angular.io/cli/build中表示该选项适用于开发人员。

在此输入图像描述


nip*_*777 12

这取决于您的用例。

无需单独的供应商块的优势在于您将能够获得更小的捆绑包大小。小多少取决于您的应用程序。我建议尝试带有和不带有标志的构建,以查看是否存在显着差异。

另一方面,vendorChunk启用的主要优点是用户将只能下载更改的客户端代码而无需第三方代码(不太可能经常更改)。

综上所述:

设置vendorChunktrue

  • 您计划经常更新客户端代码,而无需更改许多第三方库。

设置vendorChunkfalse

  • 这样可以大大减少捆束尺寸
  • 或者您不太可能经常更改客户端代码

  • 快速问题,为什么不分隔供应商的块使捆绑包的尺寸更小? (5认同)
  • @Lani 分离供应商会使代码_更大_,而不是更小,我相信你误读了。原因是,如果某些库(在 main.js 和vendor.js 中)仅在代码中出现一次,则可以更好地编译代码。 (2认同)

fir*_*s0n 5

开发人员表示,在生产环境中,vendor.js“即使仅更改应用程序代码,也会经常获得不同的供应商块哈希值”。因此,看起来在生产中,vendorChunk=true 没有多大用处。(虽然无法检查)

但我刚刚检查了我们的生产应用程序的包大小,vendorChunk=false
main.js(1'996'389 字节)

对于vendorChunk = true
main.js(193'223字节)+供应商.js(1'804'540字节)= 1'997'763字节

我们赢得了 1374 字节,这没什么,但当然可能取决于应用程序。对于我来说,我认为最好坚持默认行为。(对于开发为 true,对于产品为 false)