M1 Mac安装低版本Node.js

  支持在 M1(Apple Sillicon) 平台上原生运行的 Node.js 最低版本为 16, 在这之前的版本要想在 M1 的 Mac 上运行,需要使用 Rosetta 2 转译运行。
  这里以 asdf-vm 为例,在 M1 Mac 上安装 Node.js 14 版本(nvm 同理):

1
2
3
4
5
6
7
8
9
10
11
# 安装 Rosetta 2 
/usr/sbin/softwareupdate --install-rosetta --agree-to-license

# 使用 Rosetta 2 转译运行asdf install 命令
arch -x86_64 asdf install nodejs 14.17.6

asdf shell nodejs 14.17.6

# 测试nodejs运行的架构
node -e 'console.log(process.arch)'
x64

如果在执行 arch -x86_64 asdf install 时遇到如下错误:
arch: posix_spawnp: asdf: Bad CPU type in executable, 可以尝试重新用 Rosetta 2 启动一个新 shell:

1
env arch -x86_64 zsh --login

这样当前 shell 的所有命令都会用转译执行,之后我们直接执行:

1
asdf install nodejs 14.17.6

安装即可。

Ref: