yarn install 默认情况下不会修改 yarn.lock 文件,除非满足以下条件:
-
package.json 中的依赖版本与 yarn.lock 中记录的版本不匹配[1][2][4]。
-
yarn.lock 文件不存在,此时会根据 package.json 生成新的 yarn.lock[1][2]。
-
node_modules 目录不存在或不完整[1][2]。
为了确保 yarn install 不修改 yarn.lock 文件,可以采取以下措施:
-
使用 --frozen-lockfile 参数:
yarn install --frozen-lockfile
这个命令会严格按照 yarn.lock 文件安装依赖,如果 yarn.lock 和 package.json 不匹配,则会报错而不是更新 lock 文件[4]。
-
不要手动修改 package.json 中的依赖版本。如果需要更新依赖,应该使用 yarn upgrade 命令[1][2]。
-
确保提交代码时 package.json 和 yarn.lock 文件保持同步[1][2][4]。
-
不要随意删除 node_modules 和 yarn.lock 文件重新安装,这可能会导致依赖版本的意外更新[1]。
-
在团队中建立规范,要求所有成员在修改依赖时同时更新并提交 yarn.lock 文件[2][4]。
通过遵循这些最佳实践,可以最大程度地确保 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