给已安装 node.js 的机器安装 nvm 的隐患及解决办法

使用 nvm 管理 node.js 版本已经好几个年头了,接触 vue 之后很长时间没用 gulp 了,前几天升级 ghost 主题时启动下尘封的 gulp ,才发现了一个大坑,实在惭愧。我觉得有必要发表一下,也许有些朋友正遇到相同的困惑。。。


当你安装过 node.js ,在改用 nvm 进行版本管理之后,之前通过 npm 全局(-g)安装的程序会残留在/usr/local/bin中,其软链接指向/usr/local/lib/node_modules中。这些文件依然存在,会造成混淆。所以,记得在安装 nvm 之后执行如下清理:

  • 删除/usr/local/lib/node_modules整个文件夹
  • 删除/usr/loca/bin中软链接到../lib/node_modules中程序的所有文件

这个问题导致我使用gulp命令时不断提示以下错误

path.js TypeError: Path must be a string. Received null

无论用nvm use怎么切换 node.js 版本,或者把gulp卸载再重新全局安装,都解决不了,最后which一下我才找到原因。。。

最后清理的 cli 还包括 grunt,cordova,ionic 等

如果你在使用npm i -g xxx后发现程序并没有更新,请使用which检查一下路径是不是有问题

若您觉得我的博文对您有帮助,欢迎点击下方按钮对我打赏
打赏