Can't run Strapi with a plugin that depends on `canvas` package

Hi everyone. I need to use canvas package in my plugin that has binary dependencies. The plugin builds just fine, however running strapi develop (through yarn) results in this error:

Error: Could not load js config file                                            C:\Users\xtul\source\repos\gmc-backend\src\plugins\certificate-manager\dist\strapi-server.js: error: 127\\?\C:\Users\xtul\source\repos\gmc-backend\src\plugins\certificate-manager\node_modules\canvas\build\Release\canvas.node
at loadJsFile (C:\Users\xtul\source\repos\gmc-backend\node_modules\@strapi\strapi\dist\core\app-configuration\load-config-file.js:19:13)
...

I managed to get to the actual call stack and it’s:

Error: error: 127\\?\C:\Users\xtul\source\repos\gmc-backend\src\plugins\certificate-manager\node_modules\canvas\build\Release\canvas.node
at Module._extensions..node (node:internal/modules/cjs/loader:1465:18)
at Module.load (node:internal/modules/cjs/loader:1206:32)
at Module._load (node:internal/modules/cjs/loader:1022:12)
at Module.require (node:internal/modules/cjs/loader:1231:19)
at require (node:internal/modules/helpers:179:18)
at Object.<anonymous> (C:\Users\xtul\source\repos\gmc-backend\src\plugins\certificate-manager\node_modules\canvas\lib\bindings.js:3:18)
at Module._compile (node:internal/modules/cjs/loader:1369:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1427:10)
at Module._load (node:internal/modules/cjs/loader:1022:12)                      

So basically node not being able to read that binary file or it’s dependencies… but the plugin itself has no problems building.

This topic has been created from a Discord post (1272179588306436107) to give it more visibility.
It will be on Read-Only mode here.
Join the conversation on Discord