You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Node.js canvas模块版本不兼容报错求助

解决Canvas模块NODE_MODULE_VERSION版本不兼容问题

你遇到的这个问题是Node.js原生模块里很常见的版本不匹配情况——canvas是依赖C++编译的原生模块,它当前安装的版本是基于NODE_MODULE_VERSION 93(对应Node.js 16.x版本)编译的,但你现在运行的Node.js版本要求的是NODE_MODULE_VERSION 83(对应Node.js 14.x版本),所以才会抛出这个错误。下面是几个靠谱的解决步骤:

  • 先清理现有不兼容的canvas安装
    首先把已经装的不兼容版本彻底删掉,同时清理npm缓存避免残留:

    npm uninstall canvas
    npm cache clean --force
    
  • 重新安装适配当前Node版本的canvas
    直接重新安装,npm会自动根据你当前的Node版本编译或下载对应的预编译二进制文件:

    npm install canvas
    

    如果重新安装后还是报错,试试强制重新编译模块:

    npm rebuild canvas --update-binary
    

    这个命令会强制触发模块重新编译,并且优先下载匹配你Node版本的预编译包,能解决大部分版本不兼容的问题。

  • 指定兼容的canvas版本(如果上面方法无效)
    要是还是不行,你可以安装一个明确支持你Node.js 14.x版本的canvas版本,比如2.8.x系列(这个版本对Node 14的兼容性很好):

    npm install canvas@2.8.0
    

另外提醒一下:如果你用了nvm这类Node版本管理工具,一定要确认当前终端激活的是你项目需要的Node版本,别因为版本切换导致编译环境不一致。

内容的提问来源于stack exchange,提问作者מרום רוזנר

火山引擎 最新活动