将应用程序代码与供应商代码合并有哪些好处?

What are the benefits of consolidating application code with vendor code?

在我当前的项目中,我们的 gulp 构建过程将我们的 Angular 应用程序放到两个 Javascript 文件中;一个用于应用程序中的任何内容(我们编写的内容),一个用于供应商文件(基本上是任何带来的东西;例如包括 bower)。

最近一个请求来自对项目更抽象的影响,将 app.jsvendor.js(以及 CSS 等价物)合并到一个文件中以减少 HTTP 请求。

现在,我对 gulp 并没有太多经验,但我们最初的实施是针对这两个文件设置的。我的问题是:合并两者是否有实际好处,或者是否有技术或实际原因将它们分开?也许这就是最初(可能是 Yeoman)脚手架布置它们的方式,如果是这样,是否存在架构原因?

非常感谢您提供的所有建议或经验。

Gulp 将您的供应商和应用程序代码编译到一个文件中没有任何问题。这样做的好处是可以减少浏览器需要对单个脚本请求发出的请求数。

但是,通常会使用两个文件,以便在发生错误时更清楚地表明错误来自何处。这也意味着编译您的应用程序代码会更快,因为它不需要在您的应用程序代码发生更改时重新编译供应商代码。通常,供应商代码更稳定,因此不需要频繁编译(甚至观察)。

此外,随着 HTTP2 的出现及其进行多重下载的能力,将您的代码连接到一个大文件中是一个更糟糕的选择。这是因为即使是很小的更改也会导致需要重新下载整个串联的 blob。