M1芯片Mac构建node-canvas时出现arm64架构不兼容错误求助
解决M1 Mac上node-canvas架构不兼容(arm64/x86_64)问题
你的报错核心是canvas.node构建的架构(arm64)与当前Node.js运行的架构(x86_64)不匹配,以下是针对性解决方案:
方案1:强制canvas构建为x86_64架构(适配x86_64版本Node)
如果你的Node.js是x86_64版本(用node -p process.arch验证输出为x64),直接指定架构重新构建canvas:
npm install canvas --build-from-source --target_arch=x64
或者先设置环境变量再清理重装:
export npm_config_target_arch=x64 rm -rf node_modules package-lock.json npm install canvas --build-from-source
方案2:切换到arm64版本Node.js(M1原生适配)
M1 Mac优先推荐使用arm64原生Node.js,避免架构兼容问题:
- 用nvm安装arm64版本的Node.js v22:
nvm install 22 --arch arm64
- 切换到该版本:
nvm use 22
- 清理现有依赖后重新安装canvas:
rm -rf node_modules package-lock.json npm install canvas --build-from-source
*注意:此时确保你的brew是arm64版本(安装路径为/opt/homebrew),之前安装的依赖无需重复安装。
方案3:通过Rosetta 2全链路使用x86_64环境
如果必须依赖x86_64生态,通过Rosetta 2运行终端并重新配置:
- 右键终端应用 → 选择「使用Rosetta打开」,打开新的终端窗口
- 安装x86_64版本的Node.js:
nvm install 22 nvm use 22
- 安装x86_64版本的依赖包(brew会自动切换到x86路径
/usr/local):
arch -x86_64 brew install pkg-config cairo pango libpng jpeg giflib librsvg pixman
- 设置对应架构的PKG_CONFIG_PATH:
export PKG_CONFIG_PATH="/usr/local/opt/pixman/lib/pkgconfig"
- 重新安装canvas:
rm -rf node_modules package-lock.json npm install canvas --build-from-source
内容的提问来源于stack exchange,提问作者klaucode
相关产品推荐
相关产品推荐

