Install node on Apple Silicon M1 both ARM and x86 (Rosetta)
如何在 M1 晶片 (arm64) 的環境安裝 x86_64 (i386) 的 node
雖然開發、作業用的環境使用 Apple Silicon M1 (M 系列) 晶片 (ARM),但是多數 Production 都仍是 intel 類型的 (i386) 等架構
所以~在 Apple 環境下開發,還是建議使用、安裝相應的 node (架構) 版本
透過 Apple Rosetta 完成
沒有 Rosetta 的話,請手動安裝
softwareupdate –install-rosetta
Application 資料夾內找到
iTerm.app 或 utillties/Terminal.app
右鍵 get info (command + i)
啟用 Rosetta
之後 cli 都會是用 i386 的模式運作
這時候透過 nvm 安裝的 node 就會是 x64 版本
安裝完 node 後,記得再回到 get info 把 Rosetta 關掉;不然多墊一層 Rosetta 效能多少還是有影響…
總論
Apple 透過 Rosetta 可以指定執行 i386 架構 (如上述需手動啟用)
也可以同時讓 arm 和 i386 的程式混合執行 (自動 / 預設)
所以利用這個方式,在 arm64 環境架構下執行 x86_64 的 node
How Test
檢查作業環境架構
cli 輸入
arch
檢查目前 node 架構
node -e 'console.log(process.arch)'
e.g. preview
Arch
- i386, x86, x64, x86_64 都可以認定為 intel / amd 的架構
- arm64 即為 arm 架構
ref. x86 - 维基百科,自由的百科全书
ref.