Npm update “命令”;npm更新“;vs包“;npm检查更新“;

Npm update “命令”;npm更新“;vs包“;npm检查更新“;,npm-update,Npm Update,命令和包之间有什么区别?使用后者是否完全安全 似乎在执行npm update之后,并不是所有的包都被更新,因此它似乎是不完整的。许多其他人提到先使用previor命令,然后使用后者,但我仍然不明白后者做了什么,而previor没有做什么。npm check updates只会修改您的package.json文件。一旦运行了该命令,您就需要运行一个单独的npm安装来获取这些更改。另一方面,npm update将完成所有这一切,而不会让您有机会事先检查正在更新的内容 曾经有一个烦恼是,npm upd

命令和包之间有什么区别?使用后者是否完全安全


似乎在执行
npm update
之后,并不是所有的包都被更新,因此它似乎是不完整的。许多其他人提到先使用previor命令,然后使用后者,但我仍然不明白后者做了什么,而previor没有做什么。

npm check updates
只会修改您的
package.json
文件。一旦运行了该命令,您就需要运行一个单独的
npm安装来获取这些更改。另一方面,
npm update
将完成所有这一切,而不会让您有机会事先检查正在更新的内容

曾经有一个烦恼是,
npm update
没有更新
package.json
文件,但从5.0.0开始就不是这样了。早在那个时候,它还研究了对很多人造成无穷无尽问题的包依赖性

两者之间的关键区别在于,您可以运行
ncu
(npm 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检查更新
。默认情况下,它不会进行任何更改


如果您确实希望ncu进行更改,只需运行
ncu-u
。这将更新您的
包.json
,但是您仍然需要运行
npm install
,才能将
node\u modules
文件夹更新为新包。

好吧,经过一些调查和大量错误信息后,我想我终于得到了它


npm check updates
将使用每个包的最新更新修改您的
package.json
文件,而不考虑任何更新,这意味着您的项目可能会中断。一旦运行了
npm检查更新
,您就需要运行一个单独的
npm安装
,以获取对最新版本的更改

另一方面,
npm update
根据文件
package.json
中的设置将包更新为其最新版本


例如,依赖项中的主要版本(3位数版本中第一位数字的增加)所做的更改可能会破坏向后兼容性。如果在
package.json
中使用插入符号
^
设置该依赖项,则命令
npm install
不会更新主要版本,而
npm check updates
会更新。检查这5分钟的npm,因为它非常清晰。

你是说
ncu
现在只是提供信息吗?但是我得到的印象是,
npm update
没有更新到最新版本,而
ncu
更新到了最新版本。@JoãoPimentelFerreira。不,我不是。如果在没有任何参数的情况下运行它,那么它实际上不会对
package.json
文件或
node\u modules
文件夹进行更改。据我所知,这一直是默认行为。如果您通过
ncu-u
,它将修改您的package.json文件(尽管您仍然需要为
节点\u模块
文件夹运行
npm install
,以获取新的软件包)。注:我编辑了我的答案,以提供更多关于这方面的信息。在第一段中,你说
npm update
将完成“所有这些”。什么意思?
npm更新
ncu-u和&npm更新
之间有什么区别<代码>npm更新
是否不更改package.json?我仍然不明白。@JoãoPimentelFerreira
npm update
将更改您的
包。json
和更新您的
节点模块
文件夹。
ncu-u
也将更改您的
包。json
。那么区别是什么呢?npm更新会更新次要版本,但不会更新主要版本。这里解释如下: