在Node.js REPL中运行命令时为何出现'Uncaught SyntaxError'错误?
问题描述
执行node game.js时抛出如下错误:
> node game.js node game.js ^^^^ Uncaught SyntaxError: Unexpected identifier >
已确认信息:
- 处于目标文件所在目录,此前该文件可正常运行
- 代码通过ESLint、Esprima在线验证,无语法错误
- 代码在Windows 10 Chrome浏览器的Live Server中可正常运行
- 已尝试PowerShell、CMD两种终端,问题一致
- 已卸载重装Node.js LTS v18.16.0,问题仍存在
可能的解决方案
1. 退出Node交互环境再执行命令
从错误提示判断,你大概率是在Node.js的REPL交互环境中输入了终端命令——REPL仅用于执行JS代码片段,无法识别终端指令。
- 按
Ctrl+C两次退出Node REPL,回到正常的PowerShell/CMD终端 - 确认提示符为
PS C:\你的文件目录>(PowerShell)或C:\你的文件目录>(CMD),而非>(Node REPL) - 重新执行
node game.js
2. 确认文件扩展名未被隐藏
Windows默认会隐藏已知文件扩展名,可能导致实际文件名为game.js.txt,但显示为game.js,Node读取文本文件时会解析出错。
- 打开文件资源管理器,点击「查看」选项卡,勾选「文件扩展名」
- 确认文件名确实是
game.js,若为game.js.txt,重命名去掉.txt后缀
3. 修正文件编码
若文件编码非UTF-8(带BOM或其他编码),Node可能解析异常。
- 用VS Code打开
game.js,点击右下角编码标识(如「UTF-8」),选择「通过编码保存」,再选「UTF-8」 - 重新执行
node game.js
4. 检查Node环境变量配置
重装Node后环境变量可能未正确配置,导致调用的不是目标版本。
- CMD终端执行
where node,PowerShell执行Get-Command node,查看Node路径是否为你安装的LTS v18.16.0目录(如C:\Program Files\nodejs\) - 若路径错误,修改系统环境变量,将正确的Node安装目录移到
PATH最上方 - 重启终端后重新执行命令
内容的提问来源于stack exchange,提问作者Junbol
相关产品推荐
相关产品推荐

