问题:降低package.json中插件版本,重新npm install下载之后,发现使用仍是新版本插件,与package.json中规定插件版本不同
原因:
Npm install之后会首先检查config和有无lock文件。当前项目有lock文件,此时查看是否和package.json
文件中声明是否一致。
根据npm版本不同,处理方式也不尽相同:
(1)低于5.0.x版本的npm会根据package-lock.json下载;
(2)5.1.0-5.4.2版本时,根据package.json下载并更新package-lock.json;
(3)以上版本会查看package.json与package-lock.json是否兼容。兼容则按照package-lock.json安装;不兼容按照package.json安装并更新package-lock.json
当前我的npm版本时6.4.1,符合第三种情况。因此我更改package.json中插件版本后,下载安装包时,低版本变更为高版本,不兼容,因此按照package.json安装,此时安装高版本成功。将package.json中插件版本变更为低版本后,高版本兼容低版本,此时按照package-lock.json版本进行安装,我的修改在package.json中,并未生效。因此出现卸载插件重装失败,仍然使用高版本插件的情况
解决:删除node-modules文件,重新下载,此时根据package.json下载,package-lock.json文件自动更新