yarn install 默认情况下不会修改 yarn.lock 文件,除非满足以下条件:
-
package.json 中的依赖版本与 yarn.lock 中记录的版本不匹配124。
-
yarn.lock 文件不存在,此时会根据 package.json 生成新的 yarn.lock12。
-
node_modules 目录不存在或不完整12。
为了确保 yarn install 不修改 yarn.lock 文件,可以采取以下措施:
-
使用 --frozen-lockfile 参数:
yarn install --frozen-lockfile这个命令会严格按照 yarn.lock 文件安装依赖,如果 yarn.lock 和 package.json 不匹配,则会报错而不是更新 lock 文件4。
-
不要手动修改 package.json 中的依赖版本。如果需要更新依赖,应该使用 yarn upgrade 命令12。
-
确保提交代码时 package.json 和 yarn.lock 文件保持同步124。
-
不要随意删除 node_modules 和 yarn.lock 文件重新安装,这可能会导致依赖版本的意外更新1。
-
在团队中建立规范,要求所有成员在修改依赖时同时更新并提交 yarn.lock 文件24。
通过遵循这些最佳实践,可以最大程度地确保 yarn install 不会意外修改 yarn.lock 文件,从而保持项目依赖的一致性和可预测性。
Citations:
1 https://juejin.cn/post/7040789422475837476
2 https://juejin.cn/post/6996851359563644958
3 https://blog.csdn.net/qiwoo_weekly/article/details/119769408
4 https://cloud.tencent.com/developer/article/1865742
5 https://chore-update--yarnpkg.netlify.app/zh-Hans/docs/cli/install