Node Canvas 在 m1 上不适用于我
当我尝试运行我的项目时,我收到此错误消息:
Error: dlopen(.../node_modules/canvas/build/Release/canvas.node, 0x0001): tried: '.../node_modules/canvas/build/Release/canvas.node' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/canvas.node' (no such file), '/usr/lib/canvas.node' (no such file)
已经做了:
brew install pkg-config cairo pango libpng jpeg giflib librsvg
xcode-select --install
npm i canvas
没有错误
不知道如何调试这个,因为有人使用 Node Canvas 在 m1 笔记本电脑上工作,请帮忙。
最重要的是确保您的 Node 可执行文件已针对 Apple Silicon 进行编译,这意味着有一个预构建的二进制文件darwin-arm64
。您可以在此处查看哪些版本具有哪些二进制文件(以下页面包含 Node 版本 16.13.1 的二进制文件):https://nodejs.org/download/release/v16.13.1/ https://nodejs.org/download/release/v16.13.1/.
Node v14 没有预构建的二进制文件darwin-arm64
(see https://github.com/nodejs/node/issues/36161 https://github.com/nodejs/node/issues/36161),因为它无法本地编译到 Apple Silicon。
I use volta
(https://volta.sh/ https://volta.sh/)来管理我的 Node 版本,因此如果您安装 Node v16volta install node@16
然后运行npm i canvas
,你应该得到正确编译的canvas.node
file.
如果失败,请转到node_modules/canvas
并运行npm install --build-from-source
,这将编译 C++ 插件并输出正确的canvas.node
.
您可以通过运行以下命令来检查:
file node_modules/canvas/build/Release/canvas.node
# outputs: node_modules/canvas/build/Release/canvas.node: Mach-O 64-bit bundle arm64
如果它说arm64
最后,你就可以走了。如果还是说x86_64
,然后出了问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)