锁版本
好处:稳定,yarn.lock 可以确保所有人安装的版本是一致的,不会出现一会儿正常一会儿错误的情况
坏处:
- 长年累月下来,开发同学为求稳定,部分依赖包长期停留在低版本,导致越到后面越难升级。
- 部分有漏洞的包发布紧急更新后需要开发者手动更新版本才能生效。
不锁版本
准确的说是不锁 minor 和 patch,只锁大版本,例如 ^1.x.x
好处:每次 npm install 都会拉取最新的 minor 和 patch 版本,利于依赖包提升新版本的普及率
坏处:不稳定,依赖包发版有几率导致项目挂掉,即使是 patch 版本,依赖包越多这个问题越严重
以及各位的公司在这方面都是怎么规定和建议的呢