当我们使用yarn、npm等包管理工具安装依赖包的时候,会发现在项目的根目录会自动生成lock文件(yarn.lock / package-lock.json),这个文件会因为某些原因产生更改。
lock文件的作用:
包管理工具yarn、npm通过这两个文件来锁定包的版本号,确保在不同的环境下安装依赖包的时候,包的版本都是相同的,避免因为包版本的变化导致bug。
yarn.lock(或者是package-lock.json )何时更改?
yarn.lock是执行yarn(安装依赖)时自动生成的,不可手动更改。
发生以下情况时会自动更新yarn.lock
- 当package.json变化
- package.json中的包版本与yarn.lock中的版本不同
- 执行yarn add重新安装依赖
- 执行yarn upgrade更新所有依赖
所以yarn.lock文件一定要提交到仓库,如果不提交,package.json中的包版本与yarn.lock中的版本不同,就会重新安装依赖,版本号有可能会有变动。包管理工具在多人合作开发时要统一使用同一个,保证能够正确的同步lock文件。