寫在前面
前幾天寫了一篇關(guān)于node降級的文章
但在實際操作中,發(fā)現(xiàn)不是我想要的。
為啥這樣說呢?那先說說nvm的實現(xiàn)方法。
nvm是將每個node版本的模塊都會被安裝在各自版本的沙箱里面。
它的安裝目錄是在用戶文件目錄里的,也就是(/Users/(youname)/.nvm/)。
當在使用某個版本的時候,安裝的程序都運行在各自版本的沙箱里,這使得它能方便針對不同的項目運行不同的node版本,不用再修改系統(tǒng)所使用的node。
說到這里可能你不是很懂。但你只要知道如果你之前已經(jīng)全局安裝過node的話,那你之前安裝的全局模塊(例如grunt、gulp)就執(zhí)行不了了。。。不了了。。。了了。。。了。。。
因為你全局安裝的node是存放在/usr/local/bin里的,和nvm運行的目錄不一樣。
關(guān)于nvm正確打開方法
最好你是沒全局安裝過node,那恭喜你,直接安裝或使用nvm就好了。
如果你安裝過了呢?那就。。。
卸載已安裝到全局的 node/npm
npm ls -g --depth=0 #查看已經(jīng)安裝在全局的模塊,以便刪除這些全局模塊后再按照不同的 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 模塊注冊的軟鏈
然后你就可以繼續(xù)使用nvm了。
如果你不想卸載了全局的node,又還能切換不同版本的node怎么辦?
n
n是node的一個模塊, 是一個需要全局安裝的 npm package。安裝命令:
npm install -g n
因為和node放在一起,mac用戶自動前面加 sudo
由于n是node的模塊而已,windows用戶也可以用了(是不是松口氣不用換電腦了)
如何使用n
安裝最新的版本
n latest
安裝穩(wěn)定版本
n stable
安裝或使用某個版本
n 6.9.1
刪除某個版本
n rm 4.4.7
不過n也有它的缺點,就是n對已經(jīng)安裝的全局模塊是不作為的。
也就是說,如果你有某個全局模塊使用了這個版本的node來安裝的,當你切換成別的版本的時候,可能由于版本問題,這個全局模塊就不能用了。
選擇使用n還是nvm呢?
1.如果你使用 Windows,那沒得選了,使用 n,或者換一臺 Mac。
2.如果你會頻繁切換 node 版本(比如本地經(jīng)常測試最新版的特性,同時又要兼顧代碼在生產(chǎn)環(huán)境的兼容性),那么從全局模塊兼容性的角度考慮,只能使用 nvm。
3.如果你是一個輕量級的用戶,不需要擔心兼容性的問題,更關(guān)心 node 安裝和使用上的體驗,那么選擇 n。
最后給入了nvm的坑但又不想用的同學(xué)卸載nvm的方法。
卸載nvm
刪除目錄
rm -rf ~/.nvm
rm -rf ~/.npm
rm -rf ~/.bower
還需要刪除下.bash_profile文件中的配置,將下面的內(nèi)容去掉就好
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
最后重啟一下shell。
參考文章: How to uninstall nvm? #298
————
前端·小h
紙上得來終覺淺,絕知此事要躬行