是个超级好用的开发工具,谁用谁知道。
不少前端开发者可能有和我一样的依赖保绿强迫症,简单说,就是见不得下面这些图标:
但是手动一个个依赖检查么?不现实,也太累了。
用npm update
?那说明你还是太年轻了,看看它的说明吧:
This command will update all the packages listed to the latest version (specified by the tag config), respecting semver.
注意粗体部分,也就是说,npm update
注定了不能帮你把依赖更新到“真正的”最新版,因为semver
是有要求的。
譬如,你有一个依赖dep1
,它的版本信息如下:
{ "dist-tags": { "latest": "1.2.2" }, "versions": [ "1.2.2", "1.2.1", "1.2.0", "1.1.2", "1.1.1", "1.0.0", "0.4.1", "0.4.0", "0.2.0" ] }
然后,假设你的package.json
里是这样写的:
"dependencies": { "dep1": "^1.1.1" }
那么npm update
之后,它会变成"dep1": "^1.2.2"
,这很好,对不对?
但如果你的package.json
里是这样写的:
"dependencies": { "dep1": "~1.1.1" }
那么npm update
之后,它会变成"dep1": "^1.1.2"
,惊喜不惊喜?意外不意外?
如果不理解~
和^
的区别,那你需要去看。
因为这个缘故,我想了想,可以写个解决问题。
安装
打开
vscode
按下
⌘ + P
(windows下是ctrl + P
),打开Command Palette
键入
ext install vscode-npm-dependency
找到点击安装
使用
安装完毕后,选择一个你要更新的项目,并打开package.json
文件,然后在打开的文档里,右键选择Npm update (latest)
,效果如下:
你的package.json
就这样被更新了。
注意事项
有朋友的依赖直接用了Git URL
,那么这些依赖是会被忽略的,因为npm registry
是拿不到这个包版本信息的。
有朋友用了自己部署的npm registry
,例如,通过自己搭建了内部服务器,并且向其提交过私有包,那么显然从官方的https://registry.npmjs.org
是不可能同步到你的私有包的,这就需要配置了,给你的vscode
增加如下配置(可以是工作空间级别的,当然也可以是用户级别的):
{ "npm.registry": "https://registry.npmjs.org/"}
npm.registry
的值,可以替换为:https://registry.npm.taobao.org
等其他registry
,然后就可以开心的更新了