vscode 插件使用 node-canvas

453 阅读1分钟

node-canvas 属于 Node 原生模块,如果要运行,需要根据计算机架构重新编译,并且由于 vscode 基于 electron,原生模块编译也需要遵循 electron 要求。
如果不重新编译就会出现报错:

Activating extension 'x' failed: The module '/Users/x/studio/vscode-background/node_modules/canvas/build/Release/canvas.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 106. This version of Node.js requires NODE_MODULE_VERSION 116. Please try re-compiling or re-installing the module


在 vscode 插件使用 node-canvas

安装

npm install canvas

编译

electron 原生模块编译说明 Native Node Modules
安装 node-gyp

npm i -g node-gyp

node-canvas 的编译根据不同系统环境还需要做一些预准备(跨平台嘛)说明

OSCommand
OS XUsing Homebrew: brew install pkg-config cairo pango libpng jpeg giflib librsvg pixman
Ubuntusudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
Fedorasudo yum install gcc-c++ cairo-devel pango-devel libjpeg-turbo-devel giflib-devel
Solarispkgin install cairo pango pkg-config xproto renderproto kbproto xextproto
OpenBSDdoas pkg_add cairo pango png jpeg giflib
WindowsSee the wiki
OthersSee the wiki

完成后

cd node_modules/canvas

node-gyp rebuild --target=25.9.7 --arch=arm64 --dist-url=https://electronjs.org/headers

注意:笔者第一次重新编译时发现未成功,原因似乎是node-gyp判断存在 build 目录就跳过了,所以如果编译未成功,可以将node_modules/canvas/build目录删除再编译

  • target: vscode electron 版本,vscode 的 electron 版本号可以通过「菜单栏 - 关于」查看到
  • arch:系统架构