我很难找到一种方法来一次更新所有npm软件包,有些文章建议应该编辑package.json文件,其中所有版本号都需要更改为*
,因此强制节点获取最新版本,但其他人声明这种方法不算好。理想情况下,我想为此找到命令行选项。
npm outdated
是您要运行的命令,用于查找所有不是最新的软件包。您可以将npm output -json
的输出传输到一个文件中,然后迭代JSON以安装最新版本的软件包。
你可以尝试这些单行。
更新所有依赖项:
$ npm out --long --parseable |grep 'dependencies$' |cut -d: -f4 |xargs npm install --save
更新所有devDependencies:
$ npm out --long --parseable |grep 'devDependencies$' |cut -d: -f4 |xargs npm install --save-dev
请记住,这通常不是一个好主意,因为您可能需要在升级包的过程中更改某些内容。如果您的项目有很多依赖项,最好逐个或小组更新它们并经常运行测试。
一个简单的步骤:
$ npm和-g npm-check-updates && ncu -a && npm i
这会将package.json
中的所有包设置为最新版本。
对于单个模块,您可以尝试npm install --save module@latest
这也将改变package.json。您可以在nodejs中编写shell脚本或脚本来迭代package.json并更新所有模块。
可以使用npm update
执行所有模块的递归更新:
npm update --depth 9999 --dev
npm update --depth 9999 --dev -g
一个随时可用的NPM脚本,用于更新所有Node.js模块及其所有依赖项: How to update all Node.js modules automatically?