NodeJS 我怎样才能一次更新所有的npm软件包/模块?

xfb7svmp  于 2022-12-22  发布在  Node.js
关注(0)|答案(5)|浏览(226)

我正在努力寻找一种方法来一次性更新所有的npm包,一些文章建议应该编辑package.json文件,其中所有的版本号需要更改为*,从而迫使节点获取最新版本,但其他人认为这种方法不太好。理想情况下,我想找到一个命令行选项来实现这一点。

vcirk6k6

vcirk6k61#

npm outdated是用来查找所有不是最新的软件包的命令。您可以将npm output -json的输出通过管道传输到一个文件中,然后遍历JSON以安装最新版本的软件包。

dced5bon

dced5bon2#

一个简单的步骤:

$ npm i -g npm-check-updates && ncu -u && npm i

这将安装ncu,使用它将package.json中的所有软件包设置为最新版本,最后应用更新。

r6hnlfcb

r6hnlfcb3#

您可以尝试这些一行程序。
更新所有依赖项:

$ npm out --long --parseable |grep 'dependencies$' |cut -d: -f4 |xargs npm install --save

更新所有设备依赖项:

$ npm out --long --parseable |grep 'devDependencies$' |cut -d: -f4 |xargs npm install --save-dev

请记住,这通常不是一个好主意,因为在升级包的过程中,您可能必须更改某些内容。如果您的项目有许多依赖项,最好逐个更新或以小组为单位更新,并经常运行测试。

0mkxixxg

0mkxixxg4#

对于单个模块,你可以尝试npm install --save module@latest,这也会改变package.json,你可以写一个shell脚本或者在nodejs中写一个脚本来迭代package.json并更新所有的模块。

dojqjjoe

dojqjjoe5#

可以使用npm update执行所有模块的递归更新:

  • 对于 * 本地 * 安装的模块:npm update --depth 9999 --dev
  • 对于 * 全局 * 安装的模块:npm update --depth 9999 --dev -g

一个随时可用的NPM脚本,用于更新所有Node.js模块及其所有依赖项:
How to update all Node.js modules automatically?

相关问题