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

Node.js开发Discord机器人引入discord.js时出现Unexpected token '?'错误如何解决

问题原因

你遇到的SyntaxError是Node.js版本过低导致的语法不兼容问题:

报错中的??是空值合并运算符,该语法仅在Node.js v14.0.0及以上版本提供支持,你当前使用的discord.js v14+版本要求Node.js最低版本为v16.9.0,Replit默认的Node.js版本低于该阈值,因此加载discord.js源码时会识别??为非法字符抛出错误。

解决方案

方案1:升级Replit环境的Node.js版本(推荐)

  • 打开项目根目录,查找名为.replit的配置文件,若不存在则直接新建该文件
  • 在.replit文件中添加如下配置:
[nix]
channel = "stable-22_11"
  • 根目录下新建名为replit.nix的配置文件,添加如下内容指定Node.js版本:
{ pkgs }: {
  deps = [
    pkgs.nodejs-18_x
  ];
}
  • 保存所有配置后重启项目运行,执行node -v命令确认版本高于v16.9.0后,即可正常引入discord.js。

方案2:降级discord.js版本

如果不想调整Node.js版本,可以将discord.js降级到兼容低版本Node的v13版本,执行如下命令即可:
npm uninstall discord.js && npm install discord.js@13
注意:discord.js v13与v14的API存在差异,若你原有代码是基于v14版本编写的,需要调整适配v13的语法后才能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:57:05