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

M1 Mac运行Node.js v16.8.0报错dyld缺失符号求助

解决ARM架构Mac上Node.js显示x64且启动项目报dyld缺失符号问题

一、彻底清理所有x64 Node.js残留

  • 卸载brew安装的Node:
    brew uninstall --force node
    
  • 删除系统中残留的Node相关文件:
    sudo rm -rf /usr/local/bin/node /usr/local/bin/npm
    sudo rm -rf /usr/local/lib/node_modules
    sudo rm -rf ~/.npm ~/.node-gyp
    
  • 检查是否还有残留路径:执行which node,如果输出非/opt/homebrew/bin/node的路径,直接删除对应文件。

二、确保终端以ARM原生模式运行

  • 右键点击终端图标→「显示简介」,取消勾选「使用Rosetta打开」,重启终端。
  • 验证终端架构:执行arch,输出应为arm64。

三、安装ARM版Node.js v16.8.0

方式1:通过brew安装

# 更新brew到ARM版本
arch -arm64 brew update
# 安装Node.js 16.x分支
arch -arm64 brew install node@16
# 切换到16.8.0版本(若brew安装的是16系列最新版,需手动指定版本)
brew switch node@16 16.8.0

方式2:通过nvm安装(更精准控制版本)

# 安装ARM版nvm
arch -arm64 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 重启终端后,安装指定版本
nvm install 16.8.0
nvm use 16.8.0
  • 验证架构:执行node -p "process.arch",此时应返回arm64。

四、重建项目依赖

  • 删除项目中的依赖缓存和锁文件:
    rm -rf node_modules package-lock.json yarn.lock
    
  • 重新安装依赖:
    npm install
    
  • 启动项目,检查dyld[xxx]: missing symbol called错误是否消失。

特殊情况处理

如果项目依赖的原生模块(C++扩展)不支持ARM架构:

  • 查看模块是否有兼容ARM的更新版本,升级对应依赖。
  • 临时方案:用Rosetta模式启动终端(勾选「使用Rosetta打开」),此时Node会以x64模式运行,兼容旧原生模块,但性能会有所下降。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:35:29