Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 我应该在生产中使用vendorChunk吗_Angular - Fatal编程技术网

Angular 我应该在生产中使用vendorChunk吗

Angular 我应该在生产中使用vendorChunk吗,angular,Angular,我正在使用Angular6,我想知道在生产中是否最好将“vendorChunk”设置为true或false。我知道它的作用,但我不确定在生产中使用的最佳价值。这取决于您的使用案例 没有单独的供应商区块的优点是,您可以获得更小的捆绑包大小。大小取决于你的应用程序。我建议尝试一个带有和不带标志的构建,看看是否有显著差异 另一方面,启用vendorChunk的主要优点是,用户只能下载更改的客户端代码,而不需要第三方代码(不太可能经常更改) 总之: 如果出现以下情况,则将vendorChunk设置为tr

我正在使用Angular6,我想知道在生产中是否最好将
“vendorChunk”
设置为
true
false
。我知道它的作用,但我不确定在生产中使用的最佳价值。

这取决于您的使用案例

没有单独的供应商区块的优点是,您可以获得更小的捆绑包大小。大小取决于你的应用程序。我建议尝试一个带有和不带标志的构建,看看是否有显著差异

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

总之:

如果出现以下情况,则将
vendorChunk
设置为
true

  • 您计划经常更新客户机代码,而不更改许多第三方库
如果出现以下情况,则将
vendorChunk
设置为
false

  • 这样做可以显著减少束大小
  • 或者您不太可能频繁更改客户端代码
在production vendor.js中,“即使只更改应用程序代码,也会得到不同的供应商区块哈希”。因此,看起来vendorChunk=true在生产中没有多大用处。(但无法检查)

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

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


我们赢了1374字节,这算不了什么,但这当然取决于应用程序。至于我,我认为坚持违约行为更好。(对dev来说是正确的,对prod来说是错误的)

我在公司遇到的一个很好的例子可能是在一个应用程序中使用多个角度组件,该应用程序大量使用具有不同框架的微前端

例如,假设在React应用程序中需要角度组件。如果在这种情况下使用多个角度组件,则对于依赖于相同模块的所有使用组件,只能加载一次单独的
vendorChunk


这将缩短加载时间,因为每个组件只需加载其
mainChunk
,即可相应地工作。

我也在搜索同一个问题,在Angular文档中,该选项只应用于开发


快速提问,为什么不分离供应商区块使捆绑包大小变小?我们是否可以添加:将vendorChunk设置为false如果:-捆绑包几乎只包含自己的代码(少量第三方LIB)?(不确定句子结构…@Lani分隔供应商会使代码变大,而不是变小,我相信您误读了。原因是,如果某些库(在main.js和vendor.js中)在代码中只存在一次,那么代码可以编译得更好。我认为,如果您更改影响树抖动输出的应用程序的导入模块,从而更改
vendorChunk
大小,则只会得到不同的哈希值。