如何自动更新所有 Node.js 模块?
Posted
技术标签:
【中文标题】如何自动更新所有 Node.js 模块?【英文标题】:How to update all Node.js modules automatically? 【发布时间】:2016-03-16 03:09:15 【问题描述】:在使用 Node.js 环境的过程中,我遇到了 Node.js 模块的版本维护问题。我想确保所有内部 Node.js 模块都已更新。
许多现有手册只关注如何更新 Node.js 模块,而不是如何自动化这样的例程。
问题: 如何将所有 Node.js 模块自动更新到最新版本? 理想情况下,它应该是一些脚本、作业或任务。
【问题讨论】:
在package.json
中声明版本我相信就足够了,您几乎可以在其中配置所有内容。您的问题似乎更类似于“维护 npm 注册表”..
嘿,听起来你在这里回答了自己的问题
How do I update each dependency in package.json to the latest version?的可能重复
【参考方案1】:
手动更新所有 Node.js 模块:
-
以管理权限打开控制台
转到Node.js安装文件夹:
cd C:\Program Files\nodejs
更新 npm:npm i npm@latest
转到模块文件夹:cd C:\Program Files\nodejs\node_modules\npm
安装所有需要的模块:npm i %MODULE_NAME%@latest
安装更新管理器:npm i npm-check@latest -g
本地安装模块的可用更新:npm-check -u
全局安装模块的可用更新:npm-check -u -g
递归更新所有本地安装的模块:npm update --depth 9999 --dev
递归更新所有全局安装的模块:npm update --depth 9999 --dev -g
清除缓存:npm cache clear --force
自动更新所有 Node.js 模块:
-
创建一个 package.json:
"_cmd-update-all-modules": "npm run update-all-modules",
"scripts":
"create-global-node-modules-folder": "if not exist \"%appdata%\\npm\\node_modules\" mkdir %appdata%\\npm\\node_modules",
"npm-i-g": "npm i npm@latest -g",
"npm-check-i-g": "npm i npm-check@latest -g",
"npm-check-u-l": "npm-check \"C:\\Program Files\\nodejs\\node_modules\\npm\" -y",
"npm-check-u-g": "npm-check \"C:\\Program Files\\nodejs\\node_modules\\npm\" -y -g",
"npm-deep-update-l": "npm update --depth 9999 --dev",
"npm-deep-update-g": "npm update --depth 9999 --dev -g",
"npm-cache-clear": "npm cache clear --force",
"update-all-modules": "npm run create-global-node-modules-folder && npm run npm-i-g && npm run npm-check-i-g && npm run npm-check-u-l && npm run npm-check-u-g && npm run npm-deep-update-l && npm run npm-deep-update-g && npm run npm-cache-clear"
-
在
scripts
部分中指定要安装的所有所需模块
确保包含 Node.js 的文件夹,例如C:\Program Files\nodejs
,通过环境变量添加到PATH
将 package.json 复制到步骤 #3 中包含 Node.js 的文件夹中
使用管理权限打开控制台
在控制台中,从步骤 #3 转到带有 package.json 的文件夹
执行npm run update-all-modules
这两种方法都允许您将所有 Node.js 模块更新到最新版本,无论它安装在本地还是全局位置。
要运行这个 package.json,请调用 npm run update-all-modules
,作为提示存储在 _cmd-update-all-modules
属性中。
【讨论】:
您能否进一步澄清一下您的意思,“要运行 package.json,请使用 _cmd-update-all-modules 属性的值”... 在哪里使用它? @Atticus29,我已经详细说明了文字,希望,现在清楚了。【参考方案2】:我去https://nodejs.org/en/download/下载了安装程序并修复了安装,所有警告和错误都消失了。希望对某人有所帮助:P
【讨论】:
以上是关于如何自动更新所有 Node.js 模块?的主要内容,如果未能解决你的问题,请参考以下文章