You need to enable JavaScript to run this app. 如何解决运行discord.js代码时出现SyntaxError: Unexpected token '?'错误
优惠活动
大模型
产品
解决方案
定价
更多

如何解决运行discord.js代码时出现SyntaxError: Unexpected token '?'错误

报错原因

报错触发的核心是你当前使用的Node.js运行环境版本过低,无法识别空值合并运算符??:
??是ES2020新增的语法,Node.js从14.0.0版本才开始原生支持该语法。你安装的discord.js版本依赖了该语法,运行时低版本Node解析对应代码失败,就抛出了Unexpected token '?'的语法错误。

解决方法

  • 方案1:升级Node.js版本
    将运行环境的Node.js版本升级到14.x及以上的长期支持版本,即可直接兼容该语法,适配当前安装的discord.js版本。
    如果是在Replit平台运行,可以在项目根目录创建.replit配置文件,添加以下内容指定运行版本:
    run = "nvm use 18 && node index.js"
    
  • 方案2:降级discord.js版本
    若不方便升级Node.js版本,可以卸载当前高版本discord.js,安装适配低版本Node的v12版本:
    npm uninstall discord.js
    npm install discord.js@12.x
    
    降级后需要核对现有代码的API调用逻辑,部分API在不同版本discord.js中存在用法差异。
  • 方案3:临时修改依赖代码(仅适合临时测试)
    手动修改报错的node_modules/discord.js/src/rest/RESTManager.js文件,将对应行代码替换为低版本兼容写法:
    // 原代码
    // const token = this.client.token ?? this.client.accessToken;
    // 替换为
    const token = this.client.token || this.client.accessToken;
    
    该修改仅临时生效,重新安装依赖后改动会被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 03:12:03