前端

npm package.json版本更新问题~

2019-06-13  本文已影响0人  小m_up

之前一直使用package.json下载包,但是突然遇到一个小问题,就记录下来了
问题引发是这样的:我是要使用一个自己写的库,然后用到一半的时候,发现有需要优化的地方,所以就将自己写的那个库更新了一版,从原来的v0.0.2变成v0.0.3,然而我现在导入是直接导入的:

...
"module": "0.0.2"
...

那我代码就必须改成0.0.3,但是这样的话,我的库每更新一次就得改代码一次,肯定不可能,那就是还有自己不知道的问题,然后查了一下,发现npm可以更新制定版本的包以及最新版本的包

npm更新制定版本或最新版本包
npm install module@latest  // 或者可以写为@版本号

P.Smodule为你想要更新的包,latest代表最新版本,如果是版本号则直接写版本号即可

但是这样只是手动去更新自己知道更新了的包,很明显问题没有解决,然后我就发现诶,引入antd的写法是"antd":"^3.10.2",那这个^是个啥子意思,之前好像还见过~

package.json版本号^和~区别

说到这个版本号的区别,那先看看版本号吧,版本号主要由三部分组成:

MAJOR:版本号变化表示有了一个不可以和上个版本兼容的大更改;
MINOR:版本号变化表示有了增加了新的功能,并且可以向后兼容;
PATCH:版本号变化表示修复了bug,并且可以向后兼容;

即:v0.0.3中三个数字从左往右代表的意义,第一个数字0代表版本的大更改,第二个数字0代表功能迭代,第三个数字3代表的是bug修复或优化
PS:看到这个才发现自己的版本号不标准,首先第一版应该是1.0.0,而不是0.0.1

了解了版本号之后再来看看^~
~:主要是匹配MINOR中的最新版本,即如果你是1.1.2,那~匹配的是[1.1.2 , 1.2.0)之间的版本,它会自动把当前库更新到当前minor的版本
^:主要是匹配MAJOR中的最新版本,即如果你是1.1.2,那^匹配的是[1.1.2 , 2.0.0)之间的版本,它会自动把当前库更新到当前major的版本
注意:这两个都不会自动更新到后面界限的版本,即1.2.02.0.0,这种需要手动改package.json中的包,应该是为了防止改动太大前后版本不兼容叭

上一篇下一篇

猜你喜欢

热点阅读