在我使用Node.js环境的过程中,我遇到了Node.js模块的版本维护问题.我想确保所有内部Node.js模块都已更新.
许多现有手册仅关注如何更新Node.js模块,而不关注如何自动执行此类例程.
问题:
如何自动将所有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
创建一个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"
}
}
指定要在该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,请使用_cmd-update-all-modules
property 的值
cd C:\Program Files\nodejs
由于NPM 6.xx不支持新版本的LRU Cache,因此是必需的
脚本中的ESLint和Stylelint安装仅供参考