如何将package.json中的每个依赖关系更新为最新版本?


2009

我从另一个项目复制了package.json,现在想将所有依赖项都升级到最新版本,因为这是一个新项目,如果出现问题,我不介意进行修复。

最简单的方法是什么?

我现在所知道的最好方法是npm info express version手动运行每个包,然后手动更新package.json。肯定有更好的办法。

{
  "name": "myproject",
  "description": "my node project",
  "version": "1.0.0",
  "engines": {
    "node": "0.8.4",
    "npm": "1.1.65"
  },
  "private": true,
  "dependencies": {
    "express": "~3.0.3", // how do I get these bumped to latest?
    "mongodb": "~1.2.5",
    "underscore": "~1.4.2",
    "rjs": "~2.9.0",
    "jade": "~0.27.2",
    "async": "~0.1.22"
  }
}

19年5月1日更新:六年后,我仍在维护npm-check-updates作为该问题的综合解决方案。请享用!


2
很高兴看到解决此问题的另一种方法。我真的很喜欢Salita的输出。我现在贡献的工具github.com/tjunnone/npm-check-updates的一些不错的功能是保留版本控制语义(例如1.x或> 2.1.0)并仅按名称/ regex / devDeps进行过滤。
Raine Revere 2015年

1
这里需要一些更好的答案。显然,有了依赖项解析,您不可能总是拥有所有内容的最新版本。最大化最大数量的模块最新版本就是这样的一种优化问题。但是NPM并不比其他模块更了解您要更新的模块。如果有这样的消息,那将很酷:npm update --latest xyz,其中xyz是您想要尽可能最新的模块,而所有其他模块将使用其最新的兼容版本。
亚历山大·米尔斯

2
npm将通过下载正确的共享依赖关系来正确处理共享依赖关系之间的版本冲突。因此,如果Dep A依赖于Dep C v1.0.0,而Deb B依赖于Dep C v2.0.0,则它们将分别正确安装和使用。因此,您可以自由安装所需的任何最新软件包。
Raine Revere

尝试强制升级:npm outdated | sed '1d; s/ .*/@latest/' | xargs npm i --save
miorey

我一直在检查这个答案。但是我看到它已经在Google的搜索结果中滑落了。希望此评论将有助于推动其相关性的恢复!!
扎克·史密斯

Answers:


2389

看起来npm-check-updates是现在做到这一点的唯一方法。

npm i -g npm-check-updates
ncu -u
npm install

在npm <3.11上:

只需将每个依赖项的版本更改为*,然后运行即可npm update --save。(注意: 在最新(3.11)版本的npm中已损坏)。

之前:

  "dependencies": {
    "express": "*",
    "mongodb": "*",
    "underscore": "*",
    "rjs": "*",
    "jade": "*",
    "async": "*"
  }

后:

  "dependencies": {
    "express": "~3.2.0",
    "mongodb": "~1.2.14",
    "underscore": "~1.4.4",
    "rjs": "~2.10.0",
    "jade": "~0.29.0",
    "async": "~0.2.7"
  }

当然,这是更新依赖项的钝器。如您所说,如果项目为空且没有任何中断,那就很好。

另一方面,如果您在一个更成熟的项目中工作,则可能要在升级之前验证依赖项中是否没有重大更改。

要查看哪些模块已过时,只需运行npm outdated。它将列出具有较新版本的所有已安装依赖项。


13
@thefourtheye:您通常不应该 *在package.json中,因为您可能最终会因破坏应用程序的重大更改而自动安装新的模块版本。由于我们在--save这里使用,因此*将用每个软件包的当前版本替换。
josh3736 2013年

50
我无法使它正常工作。自发布此答案以来,npm发生了什么变化?当我使用通配符时,npm install --save通配符将留在我的package.json
davidtheclark 2013年

15
不幸的update是,对我来说,使用也不起作用。我仍然留下通配符。您是否了解有关此方面的任何文档,或者我可能会看的其他任何资源?
davidtheclark

120
有点老了,但可能对其他人有帮助:github.com/tjunnone/npm-check-updates | 使用npm install -g npm-check-updates进行安装,然后npm-check-updates检查您的依赖项是否有更新,以及npm-check-updates -u更新package.json版本。然后就npm install可以下载新版本。
RaphaelDDL 2014年

5
您的问题可能来自您尝试通过键入npm update --save而不是来更新开发包的事实npm update --save-dev
2014年

1035

npm-check-updates 是一个实用程序,它会使用所有依赖项的最新版本自动调整package.json

参见https://www.npmjs.org/package/npm-check-updates

$ npm install -g npm-check-updates
$ ncu -u
$ npm install 

[编辑]如果您使用的是最新版本的,npm则这样做的侵入性较小(避免全局安装):

$ npx npm-check-updates -u
$ npm install 

135
应该可以通过npm命令本身在本地使用它,这实际上是迄今为止更新依赖项的最佳解决方案。
Mohammad Arif 2014年

7
完全应该是npm的一部分。但是,事实并非如此,这种解决方案像微风一样出现。谢谢。
Stefan 2014年

2
我以为你们的同伴正在推动[HARD]将其纳入核心npm?
enorl76

3
@Batman是的,如果您之前没有安装过。否则,请使用npm update。ncu只是更新package.json。它不会安装或更新“ node_modules”。
Muzaffer,2015年

1
无用的包,仅使用来更新部分包ncu -a,也不会更新package.json。
亚历山大·金

385

更新了最新的NPM

npm 2+(节点0.12+):


npm outdated
npm update
git commit package-lock.json

古代npm(大约2014年):

npm install -g npm-check-updates
npm-check-updates
npm shrinkwrap
git commit package-lock.json

确保收缩您的部门,否则您可能会遇到一个死项目。前几天我退出了一个项目,但由于我的部门已经过时/已更新/一团糟,因此无法运行。如果我只好包装,npm会完全安装我需要的东西。


细节

对于那些好奇的人来说,这里是我的建议:

使用npm-check-updatesnpm outdated建议最新版本。

# `outdated` is part of newer npm versions (2+)
$ npm outdated
# If you agree, update.  
$ npm update

#       OR

# Install and use the `npm-check-updates` package.
$ npm install -g npm-check-updates
# Then check your project
$ npm-check-updates
# If you agree, update package.json.
$ npm-check-updates -u

然后进行全新安装(没有rm,我得到了一些依赖警告)

$ rm -rf node_modules
$ npm install 

最后,保存确切的版本npm-shrinkwrap.jsonnpm shrinkwrap

$ rm npm-shrinkwrap.json
$ npm shrinkwrap

现在,现在npm install将使用确切的版本npm-shrinkwrap.json

如果您检查npm-shrinkwrap.jsongit,所有安装将使用完全相同的版本。

这是一种从开发(所有更新,一直)过渡到生产(没有任何接触的人)的方法。

ps Yarn将您的包裹清单发送到Facebook


13
这是实际的正确答案。安装了数十个部门之后,这是一种更好的方法
Angel S. Moreno 2015年

6
根据经验,始终一次更新所有软件包的建议可能很危险。
alphadogg

1
当然。如果您创建并npm-shrinkwrap.json进入源代码,并在每次更新时提交,则始终可以“回到原来的状态”。开始时,我忽略了拆封功能。
Michael Cole

21
不能回答问题。问题是如何更新最新版本。npm update仅更新到semver版本,而不是最新版本。
gman

1
如果有替代方案,您能回答yarn upgrade package@version吗?
本·辛克莱

201

要将一个依赖项更新到最新版本,而不必手动打开package.json并更改它,可以运行

npm install {package-name}@* {save flags?}

npm install express@* --save

供参考,npm-install


正如用户Vespakoen在拒绝编辑中指出的那样,还可以通过以下方式一次更新多个软件包:

npm install --save package-nave@* other-package@* whatever-thing@*

他还基于对外壳进行了单线分配npm outdated。有关代码和说明,请参见编辑


PS:我也讨厌不得不手动编辑package.json类似的东西;)


8
这个解决方案很棒。快速简便地将单个软件包明确更新为最新版本而无需安装任何新模块的方法。我喜欢npm-check-updates,但afaik尝试使所有软件包保持最新,这并不总是您想要的。
Chev

这对我不起作用npm install react-native-image-picker@* --save
哈里·莫雷诺

1
@Chev:ncu可以轻松地将单个或多个软件包作为目标ncu express mocha chai。您也可以使用排除软件包ncu -x mocha。我同意以上是更新单个程序包的最简单解决方案。
Raine Revere

2
我只是从最近的文档中使用了类似的方法...使用“最新”而不是“ *”npm install {package-name}@latest {save flags}
Drew Thomas

1
非常感谢,这个解决方案很棒,而且正是我想要的。它允许您更新特定的软件包,而无需更新其他所有依赖关系,这可能会导致无法预料的问题!
Dany Wehbe

90

如果您恰好使用Visual Studio Code作为您的IDE,那么这是一个有趣的小扩展,用于更新package.json一键式过程。

版本镜头

在此处输入图片说明


2
这里有一个出色的文本3版本:github.com/yavorsky/Bump,虽然有点慢。
亚历山大·金

4
做工精美,可以防止任何人不清楚,它只是对照最新的npm存储库版本检查package.json中的版本,并允许您单击一个版本来更新package.json中的文本内容。然后,您需要运行“ npm update”以告诉npm安装新版本。
MattG

2
请注意,它已经可以看到一个简短的说明最新版本的软件包的依赖的内置Visual Studio代码通过包装上的入门鼠标悬停:内置包版本提示
GürolCanbek

1
请注意,单击代码镜头链接时,它不会自动安装软件包!它只是更新package.json版本文本。
RA。

59

从npm 1.3.15开始运行。

"dependencies": {
  "foo": "latest"
}

10
很高兴知道。我的猜测是,这通常在任何生产站点上都是一种不好的做法,因为它将自动更新为可能向后不兼容的版本。' 〜2 '语法将您锁定在给定的主要版本号中,以下版本将向后兼容。
Raine Revere 2014年

1
您可以随时冻结产品上的部门。有一个命令。-2听起来还可以。
Tobiasz Cudnik

5
我喜欢将其与npm shrinkwrap冻结部门一起使用。
daniellmb

如果这样做,那么我们如何知道该软件包的实际版本?假设我有一个名为的条目"react": "16.9.0",然后添加了最新条目并运行npm i,之后如何查找项目中现在使用的是哪个版本的react?因为"react":"latest"我的package.json中还剩下什么,即使我npm i
写完

52
  1. 使用*的版本为最新版本,包括不稳定
  2. 使用latest的版本定义了最新的稳定版本
  3. 使用确切地使用最新的稳定版本号修改package.json LatestStablePackages

这是一个例子:

"dependencies": {
        "express": "latest"  // using the latest STABLE version
    ,   "node-gyp": "latest"    
    ,   "jade": "latest"
    ,   "mongoose": "*" // using the newest version, may involve the unstable releases
    ,   "cookie-parser": "latest"
    ,   "express-session": "latest"
    ,   "body-parser": "latest"
    ,   "nodemailer":"latest"
    ,   "validator": "latest"
    ,   "bcrypt": "latest"
    ,   "formidable": "latest"
    ,   "path": "latest"
    ,   "fs-extra": "latest"
    ,   "moment": "latest"
    ,   "express-device": "latest"
},

2
这是最好的答案。
佩萨

1
这应该是公认的答案
EigenFool

仍然是最安全的方法。好答案。
klewis

43

我发现以上最佳答案的唯一警告是,它将模块更新为最新版本。这意味着它可能会更新为不稳定的alpha版本。

我将使用该npm-check-updates实用程序。我的小组使用了此工具,并且通过安装稳定的更新使其有效地工作。

正如Etienne所述:安装并运行此程序:

$ npm install -g npm-check-updates
$ npm-check-updates -u
$ npm install 

3
rm -rf node_modulesnpm install为我摆脱一些依赖警告之前。
Michael Cole

1
万一您在package.json中有“ *”,只需在运行npm-check-updates之前将其更改为“ 0”或“ 0.0”或“ 0.0.0”即可。
igorpavlov,2015年

这是最简单的方法。没有麻烦,没有麻烦。奇迹般有效。您所有的部门得到更新并正确安装。Thx
Yoraco Gonzales

38

要查看哪些软件包具有较新的版本,请使用以下命令:

npm outdated

要更新仅一个依赖项,只需使用以下命令:

npm install yourPackage@latest --save

例如:

我的package.json文件具有依赖性:

"@progress/kendo-angular-dateinputs": "^1.3.1",

那我应该写:

npm install @progress/kendo-angular-dateinputs@latest --save

很好,但看起来--save(或--save-dev)不是强制性的更新。
伯里奇

35

我非常喜欢npm-upgrade的工作方式。这是一个简单的命令行实用程序,它遍历了所有依赖项,可让您将当前版本与最新版本进行比较,并根据需要进行更新。

这是npm-upgrade在项目根目录(package.json文件旁边)中运行后发生的情况的屏幕截图:

npm升级示例

对于每个依赖项,您可以选择升级,忽略,查看更改日志或完成该过程。到目前为止,对我来说效果很好。

编辑:要清楚这是一个第三方软件包,需要先安装该命令才能起作用。它不随npm一起提供:

npm install -g npm-upgrade

然后从具有package.json文件的项目的根目录开始:

npm-upgrade

查看文档,似乎它仅是为与本地依赖项一起使用而设计的
manncito

2
是的,刚刚被别人提及。没有答案的投诉:)
Martin Schneider '18

2
嗯,npm-upgrade对我不起作用,但是npm upgrade对我有用,它更新了我的package.json文件,这正是我想要的。
Grandizer '18年

嗯,很有趣,有错误吗?使用该方法的想法npm-upgrade是,您可以准确了解要升级的内容,并选择要升级的内容。npm upgrade对于大多数人来说可能效果不错,但有时您在升级时需要更多控制。
manncito

1
您也可以将其与npx一起使用:npx npm-upgrade-非常酷!:)
X射线

22

这是匹配语义版本号的基本正则表达式,因此您可以快速将它们全部替换为星号。

语义版本正则表达式

([>|<|=|~|^|\s])*?(\d+\.)?(\d+\.)?(\*|\d+)

如何使用

在JSON文件中选择要替换的软件包版本。

屏幕截图:选择要替换的文本

在上方输入正则表达式,然后验证其是否与正确的文本匹配。

屏幕截图:在上面输入semver regex

用星号替换所有匹配项。

屏幕截图:用星号替换软件包版本

npm update --save


包名称中有数字时不显示。即:babel-preset-es2015,babel-preset-stage-0,hex2rgba。也许可以在开始时搜索报价/双引号:('|")([>|<|=|~|^|\s])*?(\d+\.)?(\d+\.)?(\*|\d+)
rofrol

1
在支持多个尖号(ej Sublime Text)的任何编辑器上,您可以选择第一个:并按ctrl+d多次,直到全部选中它们,然后转到版本号(按向右箭头2次)并按ctrl空格,然后输入"*"
Ivan Castellanos

15

最近,我不得不更新使用npm和package.json的gruntfile.js魔术项目。以下bash命令(多行命令)对我来说效果很好:

npm outdated --json --depth=0 | \
jq --ascii-output --monochrome-output '. | keys | .[]' | \
xargs npm install $1 --save-dev

这里的想法是:要将npm outdated输出作为json 通过管道传输到jq
(jq是json命令行解析器/查询工具)
(注意使用的--depth参数npm outdated),
jq会将输出仅剥离为顶级包名称。
最终xargs一次将每个LIBRARYNAME放入一个npm install LIBRARYNAME --save-dev命令

上面是在运行计算机时对我有用的东西:node = v0.11.10 osx = 10.9.2 npm = 1.3.24

这需要:
xargs http://en.wikipedia.org/wiki/Xargs(我相信我的机器是本地的)

jq http://stedolan.github.io/jq/(我用安装brew install jq

注意:我只使用来将更新的库保存到json键中devDependancies的package.json中--save-dev,这是我的项目的要求,很可能不是您的。

之后,我用一个简单的方法检查所有东西是否都是肉汁

npm outdated --depth=0

另外,您可以使用以下命令检查当前顶级安装的库版本

npm list --depth=0

我喜欢jq,几乎每天都在使用jq,但为此目的,我改用简单的方法awknpm outdated --depth=0 | grep -v "^Package" | awk '{print $1}' | xargs npm install $1 --save-dev
Qorbani 2014年

1
我一直在使用cat package.json|jq -r '.devDependencies|keys|map(.+"@latest")|@sh'|xargs npm install --save-dev
Richard Ayotte 2015年

15

如果您想通过漂亮的(用于终端的)交互式报告界面使用温和的方法,我建议您使用npm-check

它不费吹灰之力,为您提供了更多有关依赖更新的知识,并可以对其进行控制。

为了让您了解正在等待的内容,这是一个屏幕截图(从git页面中抓取,用于npm-check):

在此处输入图片说明


14

此功能已在中引入npm v5。使用npm install -g npm@latest和更新到npm

更新 package.json

  1. 删除/node_modulespackage-lock.json (if you have any)

  2. 运行npm update。这将根据semver将依赖项package.json更新为最新版本

更新到最新版本。你可以去npm-check-updates


13

如果使用yarn,则以下命令将所有软件包更新为最新版本:

yarn upgrade --latest

从他们的文档

upgrade --latest命令upgrade软件包与upgrade命令相同,但是忽略package.json中指定的版本范围。取而代之的是,将使用由最新标签指定的版本(可能会跨主要版本升级软件包)。


1
不更新的依赖关系package.json- github.com/yarnpkg/yarn/issues/4390
Vandesh

13

从npm 5.2.0版开始,有一种方法可以在一行中运行此程序,而无需在全局npm注册表或本地应用程序中安装任何其他软件包。这可以通过利用npx与npm捆绑在一起的新实用程序来完成。(单击此处了解更多信息。

在您的项目的根目录中运行以下命令:

npx npm-check-updates -u && npm i

我只是尝试了一下,它就起作用了……只是我不得不运行npm install来实际下载新的依赖项。因此,我想这只会更新package.json,除非我丢失了某些内容
owsega

@owsega,您绝对正确,谢谢!我将答案修改为npm install在更新依赖项后也可以运行。
ilyakam

13

npm-check用来实现这一目标。

npm i -g npm npm-check
npm-check -ug #to update globals
npm-check -u #to update locals

在此处输入图片说明

另一个有用的命令列表将保留确切的版本号 package.json

npm cache clean
rm -rf node_modules/
npm i -g npm npm-check-updates
ncu -g #update globals
ncu -ua #update locals
npm i

ncu -u不是ncu -ua第二行。我不能编辑,因为不允许更改一个字符。顺便说一句非常有帮助。
Sohail Ahmed

10

Updtr!

基于过期的npm,updtr将安装最新版本并为每个依赖项运行npm test。如果测试成功,则updtr会将新版本号保存到package.json中。但是,如果测试失败,则updtr会回滚其更改。

https://github.com/peerigon/updtr


9

命令,我不得不使用更新package.jsonNPM 3.10.10

npm install -g npm-check-updates
ncu -a
npm install

背景:

我正在使用@ josh3736的最新命令,package.json但未更新。然后我在运行时注意到描述文本npm-check-updates -u

声明的版本范围满足以下依赖关系,但已安装的版本落后。您可以使用npm update安装最新版本而无需修改软件包文件。如果仍然要更新软件包文件中的依赖关系,请运行ncu -a。

阅读有关npm-check-updates的文档,您可以看到不同之处:

https://www.npmjs.com/package/npm-check-updates

-u,-upgrade:覆盖软件包文件

-a,--upgradeAll:甚至包括最新版本满足声明的semver依赖关系的那些依赖关系

ncu是npm-check-updates输入时在消息中看到的别名npm-check-updates -u

[INFO]: You can also use ncu as an alias

在npm-check-updates v3中,这-a是默认行为,而覆盖package.json仅留给该-u选项。
Raine Revere


5

上面的命令不安全,因为切换版本时可能会损坏模块。相反,我建议以下

  • 使用npm shrinkwrap命令将实际的当前节点模块版本设置为package.json 。
  • 如果不使用https://github.com/bahmutov/next-update命令行工具破坏测试,则将每个依赖项更新到最新版本
npm install -g下一步更新
//从您的包中
下次更新

1
对于活动的项目,确实需要防止向后不兼容的更改。OP更关心的是开始一个新项目,您在这里开始而不是在以后破坏事情,并希望使用最新版本。
Raine Revere 2014年

3

如果使用npm 5和节点8,请尝试执行以下命令

npm更新-保存


2
update命令似乎并未超出原始定义的范围。如果准确package.json声明"1.2.3"你不会得到1.2.4。那可以是好是坏:)
阿尔瓦罗·冈萨雷斯

3

以下代码(已被接受)向我写了类似“花费太长时间等等”之类的内容,但没有执行任何操作。问题可能是使用全局标志,idk。

npm i -g npm-check-updates
ncu -u
npm install

我决定使用文本编辑器,而是采用半手动方法。

我将这样的列表(只是更长的时间)从我的开发依赖项复制package.json到了notepad ++文本编辑器中:

"browserify": "10.2.6",
"expect.js": "^0.3.1",
"karma": "^0.13.22",
"karma-browserify": "^5.2.0",

我将搜索模式设置为正则表达式,使用该^\s*"([^"]+)".*$模式获取程序包名称,并将其替换为npm uninstall \1 --save-dev \nnpm install \1 --save-dev。点击“全部替换”。otput是这样的:

npm uninstall browserify --save-dev 
npm install browserify --save-dev
npm uninstall expect.js --save-dev 
npm install expect.js --save-dev
npm uninstall karma --save-dev 
npm install karma --save-dev
npm uninstall karma-browserify --save-dev 
npm install karma-browserify --save-dev

我将其复制回bash,然后按Enter。一切都已升级,并且工作正常。就这样。

"browserify": "^16.1.0",
"expect.js": "^0.3.1",
"karma": "^2.0.0",
"karma-browserify": "^5.2.0",

我认为这没什么大不了的,因为您不时需要这样做,但是您可以轻松编写脚本来解析package.json和升级您的软件包。我认为这样比较好,因为如果需要一些特殊的东西(例如保留lib的当前版本),则可以编辑列表。


1
通过npm-check-updates,挂起的终端是Windows上的一个已知问题。尝试添加,--packageFile package.json这样就知道不要等待标准输入。
Raine Revere

@RaineRevere谢谢!
inf3rno


3

我找到了最新版本的NPM的另一种解决方案。我想要做的是用明确的最新版本号替换所有“ *”依赖项。所讨论的方法都没有对我有用。

我做了什么:

  1. 将所有“ *”替换为“ ^ 0.0.0”
  2. npm-check-updates -u

现在package.json中的所有内容都更新为最新版本。


3

如果您不想安装全局npm-check-updates,则可以运行以下命令:

node -e "const pk = JSON.parse(require('fs').readFileSync('package.json', 'utf-8'));require('child_process').spawn('npm', ['install', ...Object.keys(Object.assign({},pk.dependencies, pk.devDependencies)).map(a=>a+'@latest')]).stdout.on('data', d=>console.log(d.toString()))"

2

替代是

"dependencies":{
    "foo" : ">=1.4.5"
}

每次使用npm update时,它将自动更新为最新版本。有关更多版本语法,请在此处检查:https : //www.npmjs.org/doc/misc/semver.html


版本控制的原因之一是要防止较新的主要版本向后不兼容的更改。我建议不要使用此版本号或“ *”版本号。OP与简化过程同时保持对何时发生的控制有关。
Raine Revere 2014年

2

无需其他软件包的解决方案

将每个依赖项的版本更改为*

"dependencies": {
    "react": "*",
    "react-google-maps": "*"
  }

然后跑 npm update --save

您的某些软件包已更新,但有些未更新?

"dependencies": {
    "react": "^15.0.1",
    "react-google-maps": "*"
  }

这是棘手的部分,这意味着您本地的“反应”版本低于最新版本。在这种情况下,npm下载并更新了“ react”包。但是,“ react-google-maps”的本地版本与最新版本相同。

如果仍要“更新”不变*,则必须从node_modules文件夹中删除这些模块。

例如delete node_modules/react-google-maps

终于再次运行npm update --save

"dependencies": {
    "react": "^15.0.1",
    "react-google-maps": "^4.10.1"
  }

npm update --save-dev如果要更新开发依赖项,请不要忘记运行 。


1

如果使用Github,则为Greenkeeper。https://greenkeeper.io/

这是一个Github集成,设置起来非常容易。安装后,它会在您指定的存储库(或所有需要的存储库)中自动创建拉取请求,并使代码始终保持最新状态,而无需强制您手动执行任何操作。然后,PR应当触发在CI服务上的构建,并且根据检查成功与否,您可以不断找出引发问题的原因或CI通过时仅合并PR。

格林门卫PR 1 格林门卫PR 2

在底部,您可以看到第一个构建首先失败,并且在提交(“升级到节点v6.9”)之后测试通过了,因此我最终可以合并PR。也带有很多表情符号。

另一个选择是https://dependencyci.com/,但是我没有对其进行深入测试。初看之后,Greenkeeper在一般的IMO中看起来更好,并且具有更好的集成性。


1
  • npm过时了
  • npm更新

应该会为您提供与您的应用程序兼容的最新通缉版本。但不是最新版本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.