概念:
Angular13及其之后,默认情况下,Angular CLI 会在磁盘上保存一些可缓存的操作。当重新运行同一个构建时,构建系统会恢复之前构建的状态并重新使用之前执行的操作,从而减少构建和测试应用程序和库所花费的时间。
持久构建缓存是一种将构建结果缓存在磁盘上(在 .angular/cache 文件夹下)的功能。 这导致构建速度提高了 68%。
配置:
默认情况下,磁盘缓存仅为本地环境启用。environment 的值可以是以下之一:
all- 允许所有机器上的磁盘缓存。
local-仅允许在开发机器上使用磁盘缓存。
ci- 仅在持续集成 (CI) 系统上允许磁盘缓存。要将环境设置更改为全部,请运行以下命令:
ng config cli.cache.environment all
angular.json 文件
{ "$schema": "...", "cli": { "cache": { "enabled": true, "path": ".cache", "environment": "all" // other supported values: "ci" and "local" } } ... }
禁用:
禁用该功能,请运行已下命令
ng config cli.cache.enabled false
结果对比:
首次变慢(要将cache数据存储在本地磁盘中),后续从本地磁盘读取编译后的数据,效率显著提高
缓存内容:
缓存的内容有很多,包括但不限于(angular 团队人员回答):
- Babel transformations
- Results of the minified CSS and JS
- Build dependencies and resolutions
- Modules transformation result
缓存体积:
缓存预计会继续增长,除非它被用户定期清除。 代码库(Repo)中执行的代码更改越多,缓存就会变得越大。
如果需要清除缓存,只需删除 .angular/cache 文件夹即可。
将来,我们希望对停滞的缓存数据执行自动清理(angular 团队人员回答)。
第一次ng build之后的缓存大小
第二次ng build之后的缓存大小
在项目中某文件增加了三行代码