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

Mik*_* B. 6 dependency-management node.js npm node-modules package.json

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

许多现有手册仅关注如何更新Node.js模块,而不关注如何自动执行此类例程.

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

小智 27

您只需要运行以下命令:

  1. npm install -g npm-check-updates

  2. ncu -u

  3. npm update

  4. npm install

说明:

  1. 要将所有软件包更新到新的主要版本,请全局安装 npm-check-updates 软件包。

  2. 这将升级 package.json 文件中依赖项和 devDependency 的所有版本,以便 npm 可以安装新的主要版本。

  3. 您现在已准备好运行更新。

  4. 现在安装更新的软件包。如果已经存在一些冲突的包,有时需要使用--force
    标志。

参考:

将所有 Node.js 依赖项更新到最新版本

或者更简单地使用 npx 它变成两个命令,并且您不安装任何全局包:

npx npm-check-updates -u
npm install
Run Code Online (Sandbox Code Playgroud)


Mik*_* B. 19

要手动更新所有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"
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 指定要在该scripts部分中安装的所有所需模块
  2. 确保具有Node.js的文件夹(例如C:\ Program Files \nodejs)通过环境变量添加到PATH
  3. 将package.json复制到步骤#3中包含Node.js的文件夹
  4. 打开具有管理权限的控制台
  5. 在控制台中,转到步骤#3中包含package.json的文件夹
  6. 执行: npm run update-all-modules

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

笔记:

  1. 要运行package.json,请使用_cmd-update-all-modulesproperty 的值
  2. cd C:\Program Files\nodejs 由于NPM 6.xx不支持新版本的LRU Cache,因此是必需的
  3. 脚本中的ESLint和Stylelint安装仅供参考

  • @Atticus29,我已经详细阐述了文本,希望现在已经清楚了。 (2认同)