MacOS M1 安装 node-canvas 报错解决方案

M1 原生的 在 node15 没有发布 canvas 的二进制版本。因此安装 canvas时会自动从源码进行编译,但是如果没有安装相应依赖就会报错。

解决方案

arch -arm64 brew install pkg-config cairo pango jpeg giflib librsvg

故障排除

Homebrew 无法安装

如果遇到

Error: Failure while executing; `tar --extract --no-same-owner --file /Users/wenbing/Library/Caches/Homebrew/downloads/6f65cc908bca8f42eeb93f33e25d76d748a7a28f20f30f41befe472ea2a01bc5--fribidi-1.0.10.arm64_big_sur.bottle.tar.gz --directory /private/tmp/d20210618-36598-16scyl7` exited with 1. Here's the output:
tar: Error opening archive: Failed to open '/Users/wenbing/Library/Caches/Homebrew/downloads/6f65cc908bca8f42eeb93f33e25d76d748a7a28f20f30f41befe472ea2a01bc5--fribidi-1.0.10.arm64_big_sur.bottle.tar.gz'

这种报错,需要手动先安装依赖前置依赖,再安装模块
在这里插入图片描述

brew install libtiff gdk-pixbuf librsvg

node-gyp 找不到头文件

如果你的 homebrew 也是 m1 原生的,那么 homebrew 会安装在 /opt/homebrew 下。而 brew install 的东西都会在 /opt/homebrew/Cellar/下,不会软链接到 /usr/local/include 下。而 node-gyp 去编译的时候,本质上还是用 clang 去编译,找不到头文件,所以会报一个fatal error: 'jpeglib.h' file not found。解决的办法就是把 /opt/homebrew/Cellar/加到 clang 的 include path 里。我的做法是在 ~/.bash_profile 中加入一行

export CPLUS_INCLUDE_PATH=/opt/homebrew/include

参考资料

  1. Can’t install on Apple M1
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值