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

repl.it升级node.js到v16后discord.js机器人仍报兼容错误如何解决

discord.js 空值合并运算符报错修复方案

你遇到的报错内容如下:

/home/runner/MathBot/node_modules/discord.js/src/rest/RESTManager.js:32 const token = this.client.token ?? this.client.accessToken;

报错根因

该报错核心是运行环境的Node.js版本不支持ES2020新增的??空值合并运算符。即使你手动配置了Node.js v16,repl.it实际运行时未读取到你的版本配置,仍调用了v14以下的旧版本Node执行代码,无法识别该语法。

修复步骤

  • 第一步:确认实际运行的Node版本
    在项目入口文件(通常为index.js)最顶部添加如下代码,运行后查看控制台输出版本号:
console.log(process.version)

如果输出版本低于v14.0.0,即可确认是版本配置未生效导致的问题。

  • 第二步:强制指定repl.it运行Node版本
    打开项目根目录的package.json文件,新增engines字段锁定Node版本,参考配置如下:
{
  "name": "math-bot",
  "version": "1.0.0",
  "engines": {
    "node": ">=16.9.0"
  },
  "dependencies": {
    "discord.js": "^14.11.0"
  }
}

如果配置后仍未生效,在根目录新建名为.replit的文件,写入如下内容指定启动命令:

run = "nvm use 16 && node index.js"
  • 第三步:重装依赖消除缓存
    删除项目根目录下的node_modules文件夹和package-lock.json文件,执行npm install重新安装所有依赖后启动项目即可。
  • 第四步:版本兼容性校验
    如果你使用的是discord.js v13及以上版本,必须保证Node版本≥v16.9.0,避免后续出现其他兼容类报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:48:02