← 中文资源

简体中文版本

锁文件

锁文件固定每个依赖的确切版本与完整性哈希,使安装跨机器与跨时间可复现。

阅读英文原文

概念定义

清单把依赖声明为范围——如“^1.2.0”——它能被许多具体版本满足。锁文件是这些范围一次解析后的产物:它列出每个包的确切版本、它拉入的子图以及其内容的哈希。安装器随后遵循锁文件而非重新解析,因此同一棵依赖树被安装到每台机器,而哈希让安装器能发现内容被改动的包。

为什么重要

没有锁文件,两个开发者可在同一天装上不同版本,CI 又可能装上另一个,“在我机器上能跑”于是成了版本问题。更糟的是,一个范围可能悄悄拉入新发布、已损坏或恶意的版本。固定版本并校验完整性哈希使安装可复现,并给供应链一组可扫描、可证明的固定构件。

工程实践

为应用提交锁文件,使每个环境安装一致,并在 CI 中用冻结的确定性模式从它安装。有意识地更新依赖并重新审查差异,因为一次升级也会改变传递依赖。绝不要手工编辑该文件;用包管理器重新生成。把它交给依赖扫描,对高保障流水线还要做来源检查,但应把它当作需要维护的快照而非永久的保证。