discord.js v13开发Discord机器人运行报错Unexpected token '??='如何解决
问题原因
报错触发的核心是Node.js版本与discord.js版本不兼容:??= 是ES2021标准新增的逻辑空赋值运算符,仅在Node.js 15.0.0及以上版本中被原生支持,你当前使用的Node.js 14.18.0无法识别该语法。另外你安装的discord.js v13.x官方明确要求最低运行环境为Node.js 16.6.0,版本不匹配直接导致语法解析错误。
解决方案
方案1(推荐):升级Node.js版本
直接将Node.js升级到符合要求的版本即可正常运行:
- 卸载当前Node.js 14版本,安装16.6.0及以上的Node.js LTS长期支持版本
- 安装完成后执行以下命令验证版本,确认符合要求:
node -v
- 删除项目根目录下的
node_modules文件夹和package-lock.json文件 - 重新安装依赖并启动项目:
npm install node ./src/bot.js
方案2:降级discord.js适配现有Node.js版本
如果暂时不想升级Node.js,可以将discord.js降级到兼容Node.js 14的v12.x版本:
- 执行命令卸载当前版本的discord.js:
npm uninstall discord.js
- 执行命令安装v12版本的discord.js:
npm install discord.js@12.x
- 注意discord.js v12与v13版本的API存在差异,后续开发需要对应调整代码逻辑。
内容的提问来源于stack exchange,提问作者Riya Pal
相关产品推荐
相关产品推荐

