我正在使用Angular6,我想知道在生产环境中将"vendorChunk"
设置为true
还是false
是否更好。我知道它的作用,但是我不确定在生产中使用的最佳价值。
答案 0 :(得分:8)
这取决于您的用例。
不使用单独的供应商块的优点是您将能够获得更小的捆绑包大小。小多少取决于您的应用程序。我建议尝试带有和不带有标志的构建,以查看是否存在显着差异。
另一方面,启用vendorChunk
的主要优势在于,用户将只能下载没有第三方代码的更改的客户代码(不太可能经常更改)。 / p>
总结:
在以下情况下,将vendorChunk
设置为true
在以下情况下,将vendorChunk
设置为false
答案 1 :(得分:0)
Devs say,在生产vendor.js中,“即使仅更改应用程序代码,通常也会获得不同的供应商块哈希”。因此,在生产中看起来似乎没有太多使用vendorChunk = true的功能。 (虽然无法检查)
但是我刚刚检查了生产应用程序的大小,是否为vendorChunk = false
main.js(1'996'389字节)
对于vendorChunk = true
main.js(193'223字节)+ vendor.js(1'804'540字节)= 1'997'763字节
我们赢得了1374个字节,这没什么,但是当然取决于应用程序。对于我来说,我认为最好还是坚持默认行为。 (对于开发人员为true,对于产品为false)
答案 2 :(得分:0)
我在公司遇到的一个很好的边缘案例可能是在一个应用中使用多个 Angular 组件,该应用大量使用具有不同框架的微前端。
例如,假设您需要在 React 应用程序中使用 Angular 组件。如果您在这种情况下使用多个 Angular 组件,则对于依赖于相同模块的所有使用的组件,单独的 var extendBootstrapSelectSanitizer = $.fn.selectpicker.Constructor.DEFAULTS.whiteList;
// To allow div elements and title attributes on td elements
extendBootstrapSelectSanitizer.div = ['title'];
只能加载一次。
这将缩短加载时间,因为每个组件只需要加载其 vendorChunk
即可相应地工作。
答案 3 :(得分:0)
我在搜索同样的问题,在 Angular 文档 https://angular.io/cli/build 中说该选项应该仅用于开发。