一尘不染

如何自动更新所有Node.js模块?

node.js

在使用Node.js环境的过程中,我遇到了Node.js模块的版本维护问题。我想确保所有内部Node.js模块都已更新。

现有的许多手册都只关注如何更新Node.js模块,而不关注如何 自动化 此类例程。

问题:
如何将所有Node.js模块自动更新到最新版本?
理想情况下,它应该是一些脚本,作业或任务。


阅读 451

收藏
2020-07-07

共1个答案

一尘不染

要手动更新所有Node.js模块:

  1. 具有 管理 权限的打开控制台
  2. 转到Node.js安装文件夹: cd C:\Program Files\nodejs
  3. 更新npm: npm i npm@latest
  4. 转到模块文件夹: cd C:\Program Files\nodejs\node_modules\npm
  5. 安装所有需要的模块: npm i %MODULE_NAME%@latest
  6. 安装更新管理器: npm i npm-check@latest -g
  7. 本地 安装的模块的可用更新:npm-check -u
  8. 全局 安装的模块的可用更新:npm-check -u -g
  9. 递归更新所有 本地 安装的模块:npm update --depth 9999 --dev
  10. 递归更新所有 全局 安装的模块:npm update --depth 9999 --dev -g
  11. 清除缓存: npm cache clear --force

要自动更新所有Node.js模块:

  1. 创建一个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",
            "eslint-i-g": "npm i eslint@latest -g",
            "stylelint-i-g": "npm i stylelint@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 eslint-i-g && npm run stylelint-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"
        }
    }
  1. 在该scripts部分中指定要安装的所有所需模块
  2. 确保通过 环境变量 将具有Node.js的文件夹(例如 C:\ Program Files \ nodejs )添加到 PATH中 __
  3. 从第3步将package.json复制到具有Node.js的文件夹
  4. 具有 管理 权限的打开控制台
  5. 在控制台中,从步骤3转到带有package.json的文件夹
  6. 执行: npm run update-all-modules

这两种方法都允许您将所有Node.js模块更新为最新版本,无论它在本地还是全局安装。

笔记:

  1. 要运行此package.json,请调用npm run update-all-modules,作为提示存储在_cmd-update-all-modules属性中。
  2. 脚本中ESLint&Stylelint的安装仅供参考。
2020-07-07