寫在前面
前幾天寫了一篇關(guān)于node降級的文章
但在實際操作中戒幔,發(fā)現(xiàn)不是我想要的。
為啥這樣說呢土童?那先說說nvm的實現(xiàn)方法诗茎。
nvm是將每個node版本的模塊都會被安裝在各自版本的沙箱里面。
它的安裝目錄是在用戶文件目錄里的献汗,也就是(/Users/(youname)/.nvm/)敢订。
當(dāng)在使用某個版本的時候王污,安裝的程序都運(yùn)行在各自版本的沙箱里,這使得它能方便針對不同的項目運(yùn)行不同的node版本楚午,不用再修改系統(tǒng)所使用的node昭齐。
說到這里可能你不是很懂。但你只要知道如果你之前已經(jīng)全局安裝過node的話矾柜,那你之前安裝的全局模塊(例如grunt阱驾、gulp)就執(zhí)行不了了。怪蔑。里覆。不了了。饮睬。租谈。了了篮奄。捆愁。。了窟却。昼丑。。
因為你全局安裝的node是存放在/usr/local/bin里的夸赫,和nvm運(yùn)行的目錄不一樣菩帝。
關(guān)于nvm正確打開方法
最好你是沒全局安裝過node,那恭喜你茬腿,直接安裝或使用nvm就好了呼奢。
如果你安裝過了呢?那就切平。握础。。
卸載已安裝到全局的 node/npm
npm ls -g --depth=0 #查看已經(jīng)安裝在全局的模塊悴品,以便刪除這些全局模塊后再按照不同的 node 版本重新進(jìn)行全局安裝
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也有它的缺點(diǎn),就是n對已經(jīng)安裝的全局模塊是不作為的退子。
也就是說贱迟,如果你有某個全局模塊使用了這個版本的node來安裝的姐扮,當(dāng)你切換成別的版本的時候,可能由于版本問題衣吠,這個全局模塊就不能用了茶敏。
選擇使用n還是nvm呢?
1.如果你使用 Windows缚俏,那沒得選了惊搏,使用 n,或者換一臺 Mac忧换。
2.如果你會頻繁切換 node 版本(比如本地經(jīng)常測試最新版的特性恬惯,同時又要兼顧代碼在生產(chǎn)環(huán)境的兼容性),那么從全局模塊兼容性的角度考慮亚茬,只能使用 nvm酪耳。
3.如果你是一個輕量級的用戶,不需要擔(dān)心兼容性的問題刹缝,更關(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
紙上得來終覺淺颂砸,絕知此事要躬行