1. 全局缓存与内容寻址
- 每个包首次从远程下载后,都会以内容哈希为标识存入本地缓存
- 再次安装相同版本的依赖时,Yarn 直接从缓存复制文件,而非重新发起网络请求
- Yarn Modern 默认将缓存配置为项目本地(.yarn/cache),便于纳入版本控制;也可通过 enableGlobalCache: true 切换为所有项目共享的全局缓存
2. 离线缓存与离线镜像
- 离线缓存是 Yarn 的一项核心特性,即使网络中断也能正常安装
- 每个包在缓存中只保存一份 zip 归档,体积小、适合提交到代码仓库
- 结合 Plug'n'Play,文件可直接从 zip 归档中读取,因此缓存无法被禁用;如需清理可运行 yarn cache clean
3. 缓存完整性校验
- 由于归档的校验和存储在 lockfile 中,任何缓存损坏都会在安装时被检测到
- Yarn 会提示用户解决问题——要么删除损坏的文件,要么更新校验和(后者仅面向高级用户在极特殊情况下使用)
- 这种机制保证了即便缓存出问题,也不会影响项目依赖的正确性