发布时间:2023-04-28 文章分类:WEB开发, 电脑百科 投稿人:李佳 字号: 默认 | | 超大 打印

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

npm命令失效

 这种因为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

npm命令失效

 执行成功后可以查看版本号: n --version

npm命令失效

另:

 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

npm命令失效

 附加几个命令:

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