mac系统上单独升级了npm命令后,因为node版本过低没有提前升级,造成npm命令无法使用:
ERROR: npm v9.6.2 is known not to run on Node.js v10.15.1. You'll need to upgrade
to a newer Node.js version in order to use this version of npm. This version of
npm supports the following node versions: `^14.17.0 || ^16.13.0 || >=18.0.0`. You
can find the latest version at https://nodejs.org/.
ERROR:
/usr/local/lib/node_modules/npm/lib/utils/exit-handler.js:21
const hasLoadedNpm = npm?.config.loaded
这种因为node版本比较低无法使用高版本npm的问题,通常解决办法:
一.查看当前版本
node -v
二、清除 Node.js 的 cache
sudo npm cache clean -f
三、使用 npm 安装 n 模块,在这里我用的 Node.js 的多版本管理器 n 来升级的
sudo npm -g n
四、查看 node 的所有版本
npm view node versions
五、升级版本,这里我选择了升级到稳定版本
sudo n latest. //升级最新版本
sudo n stable //升级稳定版本
sudo n XX.XX. //升级到指定版本
六、查看版本
node -v //查看升级后的最新版本
这个过程中,因为npm命令已失效,不能使用,所以步骤三不能执行成功,这时可以使用mac的Homebrew来实现: brew install n
执行成功后可以查看版本号: n --version
另:
n命令安装最后有个error的提示,Error: Permission denied @ apply2files - /usr/local/lib/docker/cli-plugins
可通过执行: sudo chown -R $(whoami) $(brew --prefix)/*
另一方法(未测):
mkdir -p /Applications/Docker.app/Contents/Resources/cli-plugins
brew cleanup
附加几个命令:
1.node版本降级/升级(安装指定 node版本)
sudo n 版本号 // 例如:sudo n 10.16.0
2.卸载指定 node版本
sudo n rm 版本号
3.检测目前安装了哪些node版本
n
4.切换 node版本(不会删除已安装的其他版本)
sudo n 版本号
5.更新npm到最新版
sudo npm install npm@latest -g
6.cnpm安装低版本
npm install -g cnpm@7.1.0 --registry=https://registry.npm.taobao.org
解决问题中使用的命令收集:
brew update
brew upgrade node
npm install -g npm
--
brew update && brew upgrade node && npm install -g npm
--
brew install nvm
nvm install node
--
nvm install 0.8.22
nvm list
nvm use 0.8.22