Bla*_*cec 7 canvas node.js apple-m1
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 笔记本电脑上工作,请帮忙。
小智 12
最重要的是确保您的 Node 可执行文件已针对 Apple Silicon 进行编译,这意味着有一个预构建的二进制文件darwin-arm64。您可以在此处查看哪些版本具有哪些二进制文件(以下页面包含 Node 版本 16.13.1 的二进制文件):https ://nodejs.org/download/release/v16.13.1/ 。
Node v14 没有预构建的二进制文件darwin-arm64(请参阅https://github.com/nodejs/node/issues/36161),因为它无法本地编译到 Apple Silicon。
我使用volta( https://volta.sh/ ) 来管理我的 Node 版本,因此如果您安装 Node v16volta install node@16然后运行npm i canvas,您应该会得到一个正确编译的canvas.node文件。
如果失败,请转到node_modules/canvas并运行npm install --build-from-source,这将编译 C++ 插件并输出 corect canvas.node。
您可以通过运行以下命令来检查:
file node_modules/canvas/build/Release/canvas.node
# outputs: node_modules/canvas/build/Release/canvas.node: Mach-O 64-bit bundle arm64
Run Code Online (Sandbox Code Playgroud)
如果arm64最后有这样的提示,那么你就可以开始了。如果仍然显示x86_64,则说明出现问题。
| 归档时间: |
|
| 查看次数: |
11821 次 |
| 最近记录: |