package.json文件只能锁定大版本,也就是版本号的第一位,并不能锁定后面的小版本,所以每次npm install都是拉取的该大版本下的最新的版本,但是为了稳定性考虑我们几乎是不敢这样随意升级依赖包的,这将导致多出来很多工作量,测试/适配等,所以package-lock.json文件出来了,当你每次安装一个依赖的时候就锁定在你安装的这个版本(包括大版本小版本)。
在以前可能就是直接改package.json里面的版本,然后再npm install了,但是5版本后就不支持这样做了,因为版本已经锁定在package-lock.json里了,所以我们只能npm install xxx@x.x.x (表示安装指定版本的安装包,安装完成以后安装包的信息会自动保存到项目的package.json文件,如npm install npm
) 这样去更新我们的依赖,然后package-lock.json也能随之更新。
指定版本号
(1)指定版本:比如"classnames": "2.2.5",表示安装2.2.5的版本
(2)波浪号~+指定版本:比如 "babel-plugin-import": "~1.1.0",表示安装1.1.x的最新版本(不低于1.1.0),但是不安装1.2.x,也就是说安装时不改变大版本号和次要版本号
(1)^+指定版本:比如 "antd": "^3.1.4",,表示安装3.1.4及以上的版本,但是不安装4.0.0,也就是说安装时不改变大版本号。
原文链接:
https://blog.csdn.net/peaceoncemore/java/article/details/79195206