【问题标题】:execute ng build --prod twice without changing sourcecode在不更改源代码的情况下执行两次 ng build --prod
【发布时间】:2020-08-28 08:36:25
【问题描述】:

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

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

【问题讨论】:

    标签: angular typescript production ng-build


    【解决方案1】:

    如果您查看生成的 html,您会发现请求的脚本。 <script src="bundle.hashhashhash.js"></script> 这个脚本可以很容易地缓存,从而提高您的应用程序启动时间。如果您使用更改的 src 编译您的应用程序,您将获得另一个哈希值,该哈希值向浏览器发出信号以使用新脚本而不是缓存的脚本

    【讨论】:

      【解决方案2】:

      文件名中散列的目的是让浏览器在缓存文件时再次下载文件。

      让我们这样说吧。

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2018-01-09
        • 1970-01-01
        • 2017-11-20
        • 1970-01-01
        • 2022-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多