为何在 node 项目中使用固定版本号,而不使用 ~、^?-爱代码爱编程
以语雀 文档为准
- 使用 ~、^ 时吃过亏
- 希望版本号掌握在自己手里,作者自己升级(跟随官方进行升级,就算麻烦作者,也不想麻烦使用者)
- 虽然 pnpm 很好用,但是不希望在项目中用到(临时性解决问题可以选择),原因是:
- 希望依赖控制掌握在自己手里
- 遇见依赖问题就直接去解决,而不是寻求工具的帮助,如果这类问题多了,就像滚雪球一样,有一天工具解决不了了,那麻烦就打了。
- 举例:
如果使用 ~、^,可能在你开发、测试时全都是正常的,但是在你重新检查项目安装依赖前、部署前,依赖发布了新版,出现下列情况时,将运行/发布失败,造成事故。
如果你没遇见过,那只能代表你比较幸运,但幸运并不时刻伴随你~- axios 从 1.2.1 升级到 1.2.5 时,AxiosRequestConfig 改名为 InternalAxiosRequestConfig,导致项目无法运行,参见提交记录:https://gitee.com/xuxiaowei-cloud/xuxiaowei-cloud/commit/64117ef0b17ca64001f6e90e506285e15686d801
- element-plus 从 2.2.16 升级到 2.2.18 时,TabPanelName 改名为 TabPaneName,导致项目无法运行,参见提交记录:https://gitee.com/xuxiaowei-cloud/xuxiaowei-cloud/commit/0636daef59f2b4434677dd8708cc9479e7e1d2f2