我很难找到一种更新所有npm软件包的方法,有些文章建议编辑package.json文件,其中所有版本号都需要更改为*
,因此强制节点抓取最新版本,但其他人声称这种方法不被认为是好的。理想情况下,我想为此找到一个命令行选项。
答案 0 :(得分:2)
npm outdated
是您要运行的命令,用于查找所有不是最新的软件包。您可以将npm output -json
的输出通过管道传输到文件中,然后遍历JSON以安装最新版本的软件包。
答案 1 :(得分:2)
你可以试试这些单行。
更新所有依赖项:
$ 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
请记住,这通常不是一个好主意,因为您可能需要在升级包的过程中更改某些内容。如果您的项目有很多依赖项,最好逐个或小组更新它们并经常运行测试。
答案 2 :(得分:1)
一个简单的步骤:
$ npm i -g npm-check-updates&& ncu -a&& npm i
这会将package.json
中的所有软件包设置为最新版本。
答案 3 :(得分:0)
对于单个模块,您可以尝试npm install --save module@latest
这也会改变package.json。您可以在nodejs中编写shell脚本或脚本来迭代package.json并更新所有模块。
答案 4 :(得分:0)
可以使用npm update
执行所有模块的递归更新:
npm update --depth 9999 --dev
npm update --depth 9999 --dev -g
一个现成的NPM脚本,用于更新所有具有相关性的Node.js模块:
How to update all Node.js modules automatically?