Mac os 10.15.5
Homebrew 2.2.17
node 12.17.0
npm 6.14.4 --> 6.14.5

最近是用npm安装模块包的时候,经常提示有更新,强迫症一来啥也不管用,手贱就更新了:

npm install -g n

结果显示已经更新成功了,然后

npm -v

结果版本还是之前的版本,没有变化。
所以很明显出现了两个版本的npm,使用brew安装的node一般路径会在

/usr/local/Cellar/node@12/12.17.0/lib/node_modules/

路径下找到npm,而使用npm安装或更新的模块一般则会在

/usr/local/lib/node_modules

路径下,结果很明显确实这个路径下又多了一个npm,所以我果断卸载了它:

npm uninstall -g npm

即使全局卸载原来版本的npm还是存在的。
上面只是描述了事情的经过,接下来才是进入正题:
首先,

which npm

先查到当前npm的路径

/usr/local/opt/node@12/bin/npm

这个地址只是一个link,实际真实的路径是上面提到的

/usr/local/Cellar/node@12/12.17.0/lib/node_modules/

然后我使用终端进入到

/usr/local/Cellar/node@12/12.17.0/lib

运行

npm i npm

更新即可,然后

npm doctor

看看有没有啥问题,至此

npm -v

就更新的到了最新的版本