如何一次更新所有 npm packages/modules?
How can I update all npm packages/modules at once?
我正在努力寻找一种一次性更新所有 npm 包的方法,一些文章建议应该编辑 package.json 文件,其中所有版本号都需要更改为 *
因此强制节点获取最新版本,但其他人表示这种方法不好。理想情况下,我想为此找到一个命令行选项。
对于单个模块,您可以尝试 npm install --save module@latest
那也会改变 package.json。您可以在 nodejs 中编写 shell 脚本或脚本来遍历 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 i -g npm-check-updates && ncu -a && npm i
这会将 package.json
中的所有软件包设置为最新版本。
所有模块的递归更新可以使用 npm update
:
- 对于本地 安装的模块:
npm update --depth 9999 --dev
- 对于 全局 安装的模块:
npm update --depth 9999 --dev -g
一个随时可用的 NPM 脚本,用于更新所有 Node.js 模块及其所有依赖项:
我正在努力寻找一种一次性更新所有 npm 包的方法,一些文章建议应该编辑 package.json 文件,其中所有版本号都需要更改为 *
因此强制节点获取最新版本,但其他人表示这种方法不好。理想情况下,我想为此找到一个命令行选项。
对于单个模块,您可以尝试 npm install --save module@latest
那也会改变 package.json。您可以在 nodejs 中编写 shell 脚本或脚本来遍历 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 i -g npm-check-updates && ncu -a && npm i
这会将 package.json
中的所有软件包设置为最新版本。
所有模块的递归更新可以使用 npm update
:
- 对于本地 安装的模块:
npm update --depth 9999 --dev
- 对于 全局 安装的模块:
npm update --depth 9999 --dev -g
一个随时可用的 NPM 脚本,用于更新所有 Node.js 模块及其所有依赖项: