You need to enable JavaScript to run this app. npm安装chartjs-node失败 提示缺少cairo.h、canvas@1.6.13安装报错
优惠活动
大模型
产品
解决方案
定价
更多

npm安装chartjs-node失败 提示缺少cairo.h、canvas@1.6.13安装报错

问题根因

chartjs-node 锁死了依赖的 canvas 版本为 1.6.x,该版本没有 Windows 平台的预构建二进制包,安装时必须本地编译;而你单独安装的是更高版本的 canvas,高版本已经提供了 Windows 预构建包,不需要本地编译,因此不会触发依赖缺失报错。
chartjs-node 安装时会单独拉取自身依赖树里的 1.6.13 版本 canvas,编译时找不到你配置的 GTK 头文件路径,因此报 cairo.h 缺失错误。

可行解决方案

方案1:指定编译环境变量后安装

在 VSCode 内置终端执行以下命令:

  1. 配置 GTK 相关环境变量
    如果终端是 cmd 执行以下命令:
set CAIRO_PATH=C:\GTK
set PKG_CONFIG_PATH=C:\GTK\lib\pkgconfig
set PATH=C:\GTK\bin;%PATH%

如果终端是 PowerShell 执行以下命令:

$env:CAIRO_PATH = "C:\GTK"
$env:PKG_CONFIG_PATH = "C:\GTK\lib\pkgconfig"
$env:PATH = "C:\GTK\bin;$env:PATH"
  1. 执行安装命令:
npm i chartjs-node --build-from-source

方案2:跳过编译脚本替换依赖

如果方案1仍然失败,可以跳过编译步骤,用你已有的可用 canvas 替换依赖:

  • 先跳过脚本安装 chartjs-node:
npm i chartjs-node --ignore-scripts
  • 将你本地已安装可正常使用的 canvas 文件夹,复制到项目路径下的 node_modules/chartjs-node/node_modules/canvas 目录,覆盖原有文件即可。

方案3:替换兼容依赖包

如果不想折腾原生编译,可以将 chartjs-node 替换为兼容包 chartjs-node-canvas:

  • 该依赖使用无头浏览器渲染图表,不需要原生 canvas 编译依赖,Windows 环境下安装零配置
  • API 与 chartjs-node 基本一致,旧项目仅需修改少量引入和调用代码即可适配,改造成本极低。

注意事项

  • 确保你安装的 GTK 包和系统架构匹配,64 位系统必须安装 64 位版本 GTK,否则会出现头文件识别失败问题
  • 配置完 GTK 后需要重启 VSCode 终端,确保环境变量生效后再执行安装操作

内容的提问来源于stack exchange,提问作者ChrIsTianM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 14:18:00