macOS 安装 npm modules canvas 为什么失败

找找看启用参数 --build-from-source=false 时,在 binary.host 上能否找到 binary.package_name

{
"package_name": "{module_name}-v{version}-{node_abi}-{platform}-{libc}-{arch}.tar.gz"
}

注意 arm64, 还是 x64。

二者的差别如下

canvas-v2.11.2-node-v93-linux-glibc-x64.tar.gz

canvas-v2.11.2-node-v93-linux-glibc-arm64.tar.gz

如果代码最终是在服务端上运行,而只是当前在 macOS 上 build 镜像测试,那么需要根据情况指定 platform 为目标的 arch 以匹配对应的二进制文件。这样 node 在 npm 安装 package 的时候就可以直接 install from binary 而不用 node-gpy 重新根据 c 源码 build 了。

docker build --platform=linux/amd64 . -t imagename

然后这跟 macbook 所用的 M1/M2 芯片采用 arm 架构有一定的关系。

关于本文如您有任何想法和意见,欢迎与我们联系,邮箱地址zhi@uqugu.com
您对本文有什么看法,喜欢或者不喜欢都可以发表意见。