You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord机器人discord-buttons依赖报错:Class extends值undefined不是构造函数或null

报错诱因
  • 核心原因是你使用的discord-buttons依赖包已经停止维护,仅适配discord.js v12版本,与更高版本的discord.js不兼容。discord.js v13及以上版本重构了内部结构,移除了原有v12版本中存在的APIMessage类,导致discord-buttons继承该类时找不到目标值,触发类型错误。
  • 次要诱因也可能是discord.js v12的小版本不匹配、本地依赖缓存损坏、项目中存在多个版本的discord.js冲突,导致discord-buttons无法正确导入目标类。
修复方案

场景1:继续使用discord.js v12版本

  • 先执行npm list discord.js确认本地discord.js版本为v12.x系列,若版本过高先降级:npm install discord.js@12.5.3
  • 卸载现有discord-buttons,重装适配v12的对应版本:
npm uninstall discord-buttons
npm install discord-buttons@4.0.0
  • 若仍报错,删除项目根目录的node_modules文件夹和package-lock.json文件,重新执行npm install安装所有依赖。

场景2:升级到discord.js v13及以上版本(更推荐)

discord.js从v13版本开始已经官方内置了按钮、选择菜单等交互组件,无需再使用第三方的discord-buttons包,修复步骤如下:

  • 卸载弃用的discord-buttons包:npm uninstall discord-buttons
  • 升级discord.js到最新稳定版:npm install discord.js@latest
  • 将项目中原有调用discord-buttons的代码替换为discord.js官方内置的组件API即可,原有按钮相关逻辑官方均有对应实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:18:02