升级到最新的node之后这俩模块是彻底没法共存了,之前还能通过降级其中一个模块来兼容一下,现在我怎么试都没法成功运行了,于是尝试找解决方案。
然后我发现这是由于两个模块使用的同名链接库不兼容导致的其中一个模块报错,似乎就是个无解的问题,偶然发现一个替代方案:https://github.com/Brooooooklyn/canvas
如果本来只使用了标准的绘制功能,那么可以连代码都不用改,直接替换掉依赖就可以解决问题,如果使用了非标准canvas方法,那么可能需要做一些小修改,比如将图片导出为png等格式时的额外参数之类的情况。
基本上要进行的操作就是删除`package.json`中的`canvas`依赖那行,然后直接执行`npm i @napi-rs/canvas`,npm就会自动删除`canvas`模块并安装`@napi-rs/canvas`,然后把代码中的`require(“canvas”)`换成`require(“@napi-rs/canvas”)`即可。