锁定文件是依赖清单的“编译”版本。它指定安装的每个依赖项的确切版本。一个好的锁文件格式递归地指定依赖关系的所有依赖关系。一些锁文件还为依赖二进制文件或源指定了一组允许的 SHA 哈希值(请参阅后面的文章,哪些锁文件支持这种额外的特异性级别)。
例如,在 Python 中,Pipfile.lock 中相应的锁定文件条目可能如下所示:
"click": { |
没有锁文件,你不知道:
- 实际安装了哪些版本的依赖项
- 它们的安装位置
- 依赖版本或内容何时更改
更大的好处是响应供应链中的事件。使用内容哈希锁定文件,您可以推断您是否受到漏洞/恶意程序包的影响,而不必根据版本或范围说明符进行猜测,因为构建环境是确定性和可重现的。