首先說說常規的安裝
1. 下載nvm,使用nvm來管理Node版本
-
官方文檔
windows 版本 https://github.com/coreybutler/nvm-windows
mac 版本 https://github.com/creationix/nvm#install-script
-
命令行 儘量不要用brew,免得掉坑
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
2. 使用nvm來下載node,並管理node版本
-
常見命令
nvm install stable ## 安裝最新穩定版 node nvm install <version> ## 安裝指定版本 nvm uninstall <version> ## 刪除已安裝的指定版本 nvm use <version> ## 切換使用指定的版本node nvm ls ## 列出所有安裝的版本 nvm ls-remote ## 列出所有遠程服務器的版本 nvm current ## 顯示當前的版本 nvm alias <name> <version> ## 給不同的版本號添加別名 nvm unalias <name> ## 刪除已定義的別名 nvm reinstall-packages <version> ## 在當前版本 node 環境下,重新全局安裝指定版本號的 npm 包 nvm alias default [node版本號] ##設置默認版本
上面的安裝大家都可以信手拈來,這裏就不贅述,主要說一下這其中有個大家需要注意的坑點。敲重點啦!
坑點一:安裝之前必須把本地環境清理乾淨
在安裝node前,首先要考慮後續會不會切換版本,如果需要,必須要求nvm在Node安裝之前
-
先安裝nvm
-
在通過nvm安裝自己需要的node
否則,在nvm安裝之前的安裝的node是不會被nvm管理起來的!
那如果已經安裝了node,卻還要使用nvm管理版本的話,怎麼辦?我很不幸的告訴你,你需要刪除已安裝的node。
下面是刪除的Node和npm的命令,在終端中執行即可。
sudo npm uninstall npm -g
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
坑點二:關閉終端nvm失效,區分zsh和bash
對於一般的終端,默認是bash窗口,所以在安裝完nvm後,根據如下圖提示,進行操作
配置環境變量(無 .bash_profile)
-
添加 .bash_profile在終端鍵入
touch ~/.bash_profile
-
打開 .bash_profile在終端鍵入
open -e .bash_profile
-
在 .basn_profile中輸入
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
-
配置生效
source ~/.bash_profile
如果你的終端是zsh,請往下看
配置環境變量(一般根目錄都沒有這個文件)
-
添加 .zshrc在終端鍵入
touch ~/.zshrc
-
打開 .zshrc在終端鍵入
open -e .zshrc
-
在 .zshrc中輸入
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
-
配置生效
source ~/.zshrc
坑點三:切換node版本失效
node版本失效,網絡上有好多解決方案,大家應該也可以找到
# 將要切換的版本設置爲default
nvm alias default 8.16.0
# 切換版本,這樣在那個窗口都可以使用切換後的版本
nvm use 8.16.0
最後鳴謝:
https://segmentfault.com/q/1010000004858041/a-1020000018860796
https://www.jianshu.com/p/1c0ad9c8072c
https://www.jianshu.com/p/4455f0073ed5
https://juejin.im/post/5cdb62fc5188250d8b2df0de