npm install时cb() never called!
错误解决方法
先交代一下背景:开发环境是在Mac下,今天不同于往日,在开发中需要使用supervisor这个包,于是命令行中敲sudo npm install -g supervisor安装,出现了cb() never called!的报错,如下图:
在报错的时候给我们说明了错误原因,问题出在npm自身上,回想起前一段时间自己确实手动更新升级了npm版本,出现这样的报错也不难理解了。于是像以往一样百度、谷歌寻找解决方法,很幸运搜索之后发现还是有很多小伙伴遇到同样的问题,借鉴了一下他们的解决方法,加上自己动手实践,于是就把解决方法做个总结。解决方法简单粗暴有效,那就是将node、npm彻底从电脑上先卸载掉,然后重新安装。
先说卸载:
Mac下彻底卸载node和npm方法:
卸载npm:
sudo npm uninstall npm -g
检查npm是否卸载完(返回命令不存在时表明卸载成功):
npm -v
// 返回:zsh: command not found npm
卸载node:
卸载node时需根据node安装的方式来决定卸载方式,如果使用nvm(node管理工具)安装的node的话,可以执行nvm uninstall
来卸载,如下:
nvm uninstall
由于我之前是从node官网下载的node包全局安装的,所以采用第二种方法删除,即在终端依次输入如下命令:
sudo npm uninstall npm -g
sudo rm -rf /usr/local/lib/node/usr/local/lib/node_modules/var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
检查node是否卸载完(返回命令不存在时表明卸载成功):
node -v
// 返回:zsh: command not found node
卸载完成后需重新安装node和npm,高版本的node都是再带npm的,所以重新安装node后npm也就有了,安装node也有好多种方法,在这儿,我推荐使用nvm安装:如果自己电脑上还没有安装nvm(查看是否安装,可执行nvm --version,有版本返回则表明已安装),在终端输入下面命令即可安装,详情可查看官网:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
安装完nvm后,可以使用nvm install stable
命令安装当前最新的稳定版本
nvm install stable
安装成功后可以使用nvm current查看当前使用的node版本,nvm list查看已安装的node版本,其中绿色箭头表示当前正在使用的,node -v、npm -v检查node和npm是否安装成功,如下图:
安装成功后重新执行sudo npm install -g supervisor
,结果可以安装成功,如下图:
值得一提的是使用nvm安装的node后,在执行npm install
总结:npm install时遇到cb() never called!报错时,需要知道这是npm自身问题导致的,解决方法就是:卸载node和npm并重新安装。
{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}
作者 管理员 企业
{{itemf.name}}
{{itemc.user_info.nickname}}
{{itemc.user_name}}
回复 {{itemc.comment_user_info.nickname}}
{{itemf.name}}