由于蘋果 M 系列芯片(包括 M4)使用的是 ARM 架構,而 Node.js 14 是在英特爾 x86 架構時代發布的,因此在 M 系列 Mac 上安裝 Node.js 14 可能會遇到兼容性問題
解決方法:使用 nvm + Rosetta 2
-
右鍵點擊「終端」→「顯示簡介」→ 勾選「使用 Rosetta 打開」
-
重新打開新終端(Rosetta 模式),安裝 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
-
安裝 Node.js 14(自動觸發 Rosetta 轉譯)
nvm install 14
-
驗證架構是否為 x86
node -p "process.arch"
# 應輸出 x64(表示運行在 Rosetta 2 下)
如果在安裝14版本前已經裝了nvm和較高版本的node,如果轉義為Rosetta 2,這時候再nvm -version
會找不到nvm,這時候你可能想是不是要重新安裝nvm,其實是不需要的,nvm本身是一個shell腳本管理器,它可以在不同架構的終端中使用同一個安裝目錄。
-
先檢查當前終端環境(Rosetta),在Rosetta終端中執行:
arch
,應該輸出 i386 或 x86_64(表示當前是Rosetta模式)。 -
確保在Rosetta終端中加載nvm,在Rosetta終端中,檢查/.zshrc(或/.bashrc)中是否有nvm的加載代碼。如果沒有,手動添加,輸入
nano ~/.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
之后保存并退出(nano中按Ctrl+O保存,按Ctrl+X退出)
-
然后執行
source ~/.zshrc
使配置生效 -
這個時候就可以使用nvm 安裝node14了