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

部署Discord机器人到Heroku时触发SyntaxError: 意外token '??=' 报错求助

报错根因

该错误是Node.js运行环境版本过低导致的语法不兼容问题:
代码里的??=是ES2021新增的逻辑空赋值运算符,仅Node.js v15.0.0及以上版本支持,而你使用的discord.js v13+版本要求最低Node.js版本为v16.6.0,Heroku默认的Node版本低于该要求,解析代码时直接抛出语法错误,导致进程崩溃退出。

修复步骤
  • 打开项目根目录下的package.json文件,新增engines字段手动指定Node版本,示例配置如下:
{
  "name": "discord-bot",
  "version": "1.0.0",
  "engines": {
    "node": "16.x"
  },
  "dependencies": {
    "discord.js": "^13.17.1"
  }
}

你可以根据自己的实际项目参数调整其余字段,只要保证engines下的node版本≥16.6.0即可,也可以指定18.x等更高的LTS版本。

  • 确认dependencies下的discord.js版本匹配对应的Node版本要求,避免出现其他版本兼容问题。
  • 把修改后的package.json和对应锁定版本的package-lock.json(使用npm的场景)或yarn.lock(使用yarn的场景)一起提交到代码仓库,重新推送到Heroku触发部署即可解决该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:24:03