我正在使用TypeScript在Angular 2中进行项目开发,并试图确定我的工作流程。

昨天,我看到了盖伊·贝德福德(Guy Bedford)的this video关于包裹管理的信息。在其中,他提到了他认为捆绑是反模式的事实。

我也看到过类似的提及,要摆脱捆绑在angular-university guide上的问题。

从观看视频以来的阅读情况来看,在我看来,捆绑是反模式的原因是HTTP2 allows multiple responses per request并行发送。这似乎很有用,因为对服务器的单个请求可能会在单个文件中返回整个angular应用。

现在对HTTP2的支持是否足够普遍,可以过渡到非捆绑的应用程序?优缺点都有什么?

编辑2:试图使问题更加集中

最佳答案

反模式是一个很强的术语。它也有些模糊:我们都对它的含义有这种直觉的理解,但是在争论有问题的实践x是否实际上是反模式的争论中,无疑很容易迷失方向。

因此,我不想在图书馆作者的演讲中过多地阅读副手的评论,而是要提出反对捆绑的案例。这些要点应该是毫无争议的(如果有人不同意,请在评论中让我知道,我将进行编辑)。

我们开始之前的重要警告:我捆绑了。我通常喜欢捆绑销售,这对我所做的工作来说是非常有意义的,并且通常是向前迈出了一步。它有很多积极的方面,我最喜欢的是更好的闭包编译器/汇总压缩。但是对于其余的答案,我只关注潜在的缺陷。

  • 捆绑可能导致微不足道的缓存未命中。您对应用程序的任何部分进行的任何更改都会使浏览器缓存无效。
  • 捆绑可以使利用通用库的缓存变得更加困难。如果您使用的是与其他所有人都来自同一CDN的相同版本的jquery,则您的用户很有可能甚至不必为此而打您的服务器。
  • 捆绑意味着您通常一次加载所有JavaScript。有一些异常(exception),例如webpack代码拆分,但这会使构建管道和处理文件变得复杂。
  • 捆绑意味着缺少HTTP/2并行处理多个 Assets 请求的能力。这可能与您的用例无关,也可能与您的用例无关。如果您要在FooCorp建立内部 Assets ,那么每个人仍然由于IT原因而被IE 8锁定,这种说法令人信服。出于同样的原因,您的大多数客户群也都是中国人。在世界大多数地方,HTTP/2现在是widely supported(chrome,firefox,edge,iOS Safari)。这意味着您正在为大多数用户提供低于标准的体验。
  • 10-05 20:46
    查看更多