命令“ npm update”与软件包“ npm-check-updates”

时间:2019-07-17 06:19:54

标签: npm-update

命令npm update和软件包npm-check-updates有什么区别?使用后者是否完全安全?

似乎在执行npm update之后,并非所有软件包都已更新,因此似乎不完整。许多其他popular SO answers都先使用先验命令,然后再使用后者,但我仍然不理解后者先做而后先没有做。

1 个答案:

答案 0 :(得分:1)

npm-check-updates仅会修改您的package.json文件。运行该命令后,您将需要运行单独的npm install来获取这些更改。另一方面,npm update将完成所有这些操作,而不会让您有机会事先检查正在更新的内容。

曾经很烦人的是npm update没有更新package.json文件,但是从5.0.0版本开始就不再如此了。追溯到那时,它还研究了软件包依赖关系,该依赖关系对很多人来说并没有造成任何问题。

两者之间的主要区别在于您可以运行ncunpm-check-updates的别名),并且默认情况下,它不会更新您的软件包-仅告诉您需要更新哪些软件包

例如,以下是我的一个遗留项目的输出。在这里,您可以看到一些grunt软件包已过时,主要是因为我不再从事该项目,更喜欢在npm中编写构建脚本,并且没有时间更新较旧的项目。 >

λ ncu
Checking D:\Github\XQSF_Master\web\package.json
[====================] 10/10 100%

 grunt                 ^1.0.3  →  ^1.0.4
 grunt-contrib-clean   ^1.0.0  →  ^2.0.0
 grunt-contrib-cssmin  ^2.2.1  →  ^3.0.0
 grunt-contrib-uglify  ^3.2.1  →  ^4.0.1
 grunt-sass            ~2.0.0  →  ~3.0.2

Run ncu -u to upgrade package.json

我的项目未做任何更改-它只是告诉我需要更新什么。这就是为什么我更喜欢npm-check-updates。默认情况下,它不会进行任何更改。

如果您要做要由ncu进行更改,只需运行ncu -u。这将更新您的package.json,但是您仍然需要运行npm install,将node_modules文件夹更新为新软件包。