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

Repl.it运行Node v16项目报Unexpected token '?'错误但shell执行正常问题

报错原因

这个问题的核心是Repl.it两套环境调用的Node.js版本不一致:

  • 空值合并运算符??是ES2020新增的语法特性,仅Node.js 14.0及以上版本原生支持,低于该版本的Node.js运行时无法识别该语法,就会抛出SyntaxError: Unexpected token '?'报错。
  • 你在Shell中执行node index.js正常,是因为Shell环境加载了你手动安装配置的Node v16版本,支持该语法。
  • Repl.it的运行按钮/控制台默认启动逻辑,调用的是系统预置的低版本Node.js运行时,不会读取你Shell内的自定义Node版本配置,因此触发语法报错。
解决方案
  • 找到项目根目录下的.replit配置文件,修改run配置项,强制指定Node v16启动,示例配置:
    run = "nvm use 16 && node index.js"
    
  • 如果你是通过其他方式安装的Node v16,也可以直接写死Node二进制文件的绝对路径来启动,替换原有run指令即可。
  • 没有找到.replit文件的话,也可以在Repl.it左侧菜单栏的「配置」页中,找到「运行命令」输入框,直接替换为上述指定版本的启动命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:06:04