Apple silicon 下 nvm 安装不同架构的 node

起初发现在两台M1设备下,通过nvm安装的node一个是arm64, 一个是x64架构的。
好奇为何装的不一样

Tips

  1. nvm是判断当前arch来判断是下载arm64还是x64的,可以在终端查看当前的 arch
  2. Apple siliconx64是使用rosetta2来运行的,效率低了些。
  3. 而且node官网也没有对应的arm64版对应的二进制,所以当nvm下载arm64版本node时,会下载源码,再去编译成arm64版。
  4. 判断找到对应node可执行文件,通过file查看其是什么架构。

解决方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 查看当前架构
$ arch
arm64
$ arch
i386

// 切换至 x64
arch -x86_64 zsh
// 切换至 arm64
arch -arm64 zsh

// cd 到对应 node 可执行文件目录下
$ cd ~/.nvm/versions/node/vXX.X.X/bin
// node 可执行文件的架构
$ file node
node: Mach-O 64-bit executable x86_64
$ file node
node: Mach-O 64-bit executable arm64

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!