前言

最近接手了一个老项目,这个项目使用的打包工具是 fis3,一个非常老旧的打包工具。

当我拷贝代码并安装完依赖后发现项目无法启动,询问过同事才知道,要让Node版本保持在 v12 及以下才能够启动项目。

于是我执行如下命令来安装Node v12:

nvm install v12

但是该命令并没有正常运行,产生了如下的报错:

中间一串乱码打印我就不粘贴了……

在查阅相关问题经验时,发现M1芯片安装低版本 Node是有问题的,而我当前使用的电脑正是 M1 芯片。

问题原因

低版本的 Node 并不是基于 arm64 架构的,所以不适配 M1 芯片。

解决方案

在命令行终端工具(如:item2等)中执行如下命令:

# 让 shell 运行在 Rosetta2 下
$ arch -x86_64 zsh

执行如上的命令后,就可以顺利安装低版本 Node 了

# 安装 v12 版本 Node
$ nvm install v12

需要注意的是,如果电脑发生了重启操作,那么 arch -x86_64 zsh 命令所创建的环境将消失。如果此时需要安装低版本 Node,需要再次执行该命令。

参考

  1. M1芯片Mac搭建前端开发环境