Heroku部署Discord.JS v13机器人出现Unexpected Token ??=错误如何修复
报错原因
??= 是ES2021标准新增的逻辑空赋值运算符,该语法最低仅在Node.js 15.0.0及以上版本支持,而Discord.JS v13的官方运行要求为Node.js >= 16.6.0。本次报错并非出自你编写的业务代码,而是Discord.JS v13的源码本身使用了该新语法,Heroku默认的Node.js版本低于要求版本,无法识别新语法导致抛出异常。
修复步骤
- 在项目根目录的
package.json文件中,添加Node.js版本指定配置,配置与dependencies、scripts字段同级:
{ "name": "your-discord-bot", "version": "1.0.0", "engines": { "node": "16.x" }, "dependencies": { "discord.js": "^13.0.0" } }
- 将修改后的
package.json、package-lock.json(若使用yarn则提交yarn.lock)提交到代码仓库,重新触发Heroku部署即可。 - 若部署后仍报错,可进入Heroku项目控制台的设置页面,清空构建缓存后再次重新部署。
内容的提问来源于stack exchange,提问作者ToasterBath27
相关产品推荐
相关产品推荐

