脚手架搭建项目package.json配置中依赖的版本问题
问题描述:项目刚搭建好,运行没有问题,为什么过一段时间,删除node_modules,或者重新安装包依赖,然后项目某些地方出现莫名的错误(依赖库的地方),这中问题还不好排查,原因就是包依赖官方升级了,而自己在package.json中使用的通配符( ^ )安装当前版本的最新库,虽然说小版本更新是向前兼容的,当总有兼容不到的地方,希望你不要碰到,碰到就不好排查问题
依赖本版
版本范围控制
大版本.次要版本.小版本,如:1.0.0
版本 说明 含义
主版本(大版本) 必须 一般代表了项目的重大架构变更,如进行不兼容的API更改
此版本(次要版本) 必须 一般代表了一些功能的增加或变化,但没有架构的变化
增量版本(小版本) 必须 一般是一些小的bug修复,没有重大功能变化
预发布版本或版本编译信息 不必须 添加到最后,作为扩展
版本匹配符
1.~会匹配最新的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但不包括1.3.0
2.^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x版本,包括1.3.0,但不包括2.0.0
3.版本号用*代替,始终安装最新版本的依赖包
如何选择
1.指定版本号,不添加前缀匹配符,但如果依赖包发布新版本修复一些小bug,需要手动修改package.json文件
2.^版本,版本更新比较大,可能会造成项目代码错误
3.~版本,建议使用~来标记版本号,既可以保证项目不会出现大的问题,也能保证包中的小bug可以得到修复