写在前面
前几天写了一篇关于node降级的文章
但在实际操作中,发现不是我想要的。
为啥这样说呢?那先说说nvm的实现方法。
nvm是将每个node版本的模块都会被安装在各自版本的沙箱里面。
它的安装目录是在用户文件目录里的,也就是(/Users/(youname)/.nvm/)。
当在使用某个版本的时候,安装的程序都运行在各自版本的沙箱里,这使得它能方便针对不同的项目运行不同的node版本,不用再修改系统所使用的node。
说到这里可能你不是很懂。但你只要知道如果你之前已经全局安装过node的话,那你之前安装的全局模块(例如grunt、gulp)就执行不了了。。。不了了。。。了了。。。了。。。
因为你全局安装的node是存放在/usr/local/bin里的,和nvm运行的目录不一样。
关于nvm正确打开方法
最好你是没全局安装过node,那恭喜你,直接安装或使用nvm就好了。
如果你安装过了呢?那就。。。
卸载已安装到全局的 node/npm
npm ls -g --depth=0 #查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装
sudo rm -rf /usr/local/lib/node_modules #删除全局 node_modules 目录
sudo rm /usr/local/bin/node #删除 node
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm #删除全局 node 模块注册的软链
然后你就可以继续使用nvm了。
如果你不想卸载了全局的node,又还能切换不同版本的node怎么办?
n
n是node的一个模块, 是一个需要全局安装的 npm package。安装命令:
npm install -g n
因为和node放在一起,mac用户自动前面加 sudo
由于n是node的模块而已,windows用户也可以用了(是不是松口气不用换电脑了)
如何使用n
安装最新的版本
n latest
安装稳定版本
n stable
安装或使用某个版本
n 6.9.1
删除某个版本
n rm 4.4.7
不过n也有它的缺点,就是n对已经安装的全局模块是不作为的。
也就是说,如果你有某个全局模块使用了这个版本的node来安装的,当你切换成别的版本的时候,可能由于版本问题,这个全局模块就不能用了。
选择使用n还是nvm呢?
1.如果你使用 Windows,那没得选了,使用 n,或者换一台 Mac。
2.如果你会频繁切换 node 版本(比如本地经常测试最新版的特性,同时又要兼顾代码在生产环境的兼容性),那么从全局模块兼容性的角度考虑,只能使用 nvm。
3.如果你是一个轻量级的用户,不需要担心兼容性的问题,更关心 node 安装和使用上的体验,那么选择 n。
最后给入了nvm的坑但又不想用的同学卸载nvm的方法。
卸载nvm
删除目录
rm -rf ~/.nvm
rm -rf ~/.npm
rm -rf ~/.bower
还需要删除下.bash_profile文件中的配置,将下面的内容去掉就好
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
最后重启一下shell。
参考文章: How to uninstall nvm? #298
————
前端·小h
纸上得来终觉浅,绝知此事要躬行
网友评论