You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac 13系统node-gyp报exit 2错误该如何解决?

M1芯片MacOS 13系统node-gyp编译错误解决方案

前置检查

node-gyp编译依赖XCode命令行工具,先执行以下命令确认已安装:
xcode-select --install
如果提示已安装可直接跳过后续检查步骤,如未安装按弹出的提示完成安装即可。

核心问题说明

从报错日志可判断,本次编译失败是项目依赖的node-sass包导致:旧版node-sass不兼容M1系列的ARM架构,且你当前使用的Node.js 16版本要求node-sass版本不低于v6.0.0,版本不匹配就会触发原生模块编译失败。

可行解决方案(按优先级排序)

方案1:替换node-sass为纯JS版sass(最推荐,无兼容问题)

node-sass官方已宣布废弃,sass是官方推出的纯JS替代版本,无需编译原生模块,适配全架构设备,绝大多数项目无需修改业务代码即可直接替换:

  • 卸载旧的node-sass依赖:
# npm用户执行
npm uninstall node-sass
# yarn用户执行
yarn remove node-sass
  • 安装新的sass依赖:
# npm用户执行
npm install sass --save-dev
# yarn用户执行
yarn add sass --dev
  • 清理缓存后重装所有依赖:
rm -rf node_modules package-lock.json yarn.lock && npm install

方案2:保留node-sass的适配方案

如果项目历史原因必须保留node-sass依赖,可通过Rosetta转译运行终端解决:

  • 访达中打开「应用程序」-「实用工具」文件夹,右键点击「终端」,选择「显示简介」,勾选「使用Rosetta打开」,关闭后重启终端
  • 确认node-sass版本和Node.js版本匹配:Node 16对应node-sass@6.x及以上版本,可手动指定版本安装:
    npm install node-sass@6.0.1 --save-dev
  • 重新执行依赖安装即可

方案3:手动指定编译架构

如果上述方案仍不生效,可手动指定npm编译时使用x64架构:

  • 单次安装指定架构:
    npm install --target_arch=x64
  • 全局设置默认编译架构:
    npm config set arch x64
    设置完成后重新安装依赖即可。

内容的提问来源于stack exchange,提问作者Nick Morgan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:36:03