症状
Node 报 SyntaxError: Unexpected token 并给出位置或不该出现的记号,而该文件在解析更宽松的工具里可能运行正常。当消息是 Unexpected token < in JSON at position 0 时,解析器几乎肯定收到的是 HTML 页面而非 JSON,常见于带认证的接口返回了登录页。
诊断
用 –stack-trace-limit 读取完整堆栈定位文件行;对 JSON 场景单独用 JSON.parse 验证;怀疑产物过期时从干净目录重新构建。
node --stack-trace-limit=20 file.js
根因
运行时在报错位置解析了并非合法 JavaScript 或 JSON 的文本,原因是源码有语法错误,或把非代码内容当作代码解析。
修复
修正源码语法;解析前先校验 JSON;重新构建使产物与源码一致。对 Unexpected token < 应把响应当作错误页而非数据。
验证
再次运行确认文件可加载,并对真实数据重新解析确认内容合法。两者兼备说明解析路径健康。
常见陷阱
仅靠编辑器高亮不能替代运行时校验;构建产物过期造成的错误需通过干净重建排除。