如何自动更新所有 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 模块?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js自动导航模式在Docker的应用

前端自动化之路之gulp,node.js

Node.Js的热更新服务——supervisor

node.js版本更新及遇到的错

Mac上面怎么更新node

如何关闭MyEclipse自动更新