yarn.lock中的integrity

在提交代码时会发现yarn.lock文件有这样的diff,多了一些integrity属性,有时又会删除一些。不明所以,这里就简单梳理下该属性。

作用

确保资源完整性[包版本,内容],yarn down下来资源后,用计算出的integrity值与文件中的进行匹配,如果不一致,则安装失败。

integrity值怎么算出来的

一般是哈希值的生成算法=》base64编码

为什么不是每个包都有?

理论上每个包都应该有

v1.9.4

这里我复现下当时问题,删除lock文件,重新执行yarn install,发现包还是没有integrity参数

v1.22.4

当我升级到该版本,重试,发现每个包都有integrity参数了

结论

版本BUG,所以建议直接升级即可。

参考文档