执行 ng build --prod 两次而不更改源代码



嗨,有人可以解释一下如果我运行 ng build --prod 两次而不更改任何内容会发生什么。背后是否有一些优化,或者无论文件是否更改,每个文件都被转译/重新编译。

有人可以解释生成的文件哈希吗? 什么是 puropose,NG 是否以某种方式使用它们?

如果你浏览生成的html,你会发现你的脚本被请求。<script src="bundle.hashhashhash.js"></script>可以轻松缓存此脚本,从而缩短应用启动时间。如果您使用更改的 SRC 编译您的应用程序,您将获得另一个哈希,该哈希信号指示浏览器使用新脚本而不是缓存脚本

文件名中哈希的用途是浏览器在缓存文件时再次下载文件的信号。

让我们这样说吧。

假设每次运行ng build --prod哈希时都保持不变。所以你有类似 main-1234 的东西.js

现在,您部署了应用程序,有人访问了您的页面,浏览器将下载并缓存您的文件。

一段时间后,您部署了一个新版本,但仍生成了 main-1234.js 文件。现在,之前访问过您网站的用户将不会获得您文件的新版本,因为浏览器已经缓存了它。如果缓存过期,他们需要一些时间才能看到新文件,这通常不是您想要的行为。

Angular 在为生产而构建时不使用或关心哈希值。当您运行ng build --prod时,它实际上会在dist下删除您的文件。 试试:)

最新更新