Node.js 18.13导入Redis时应用崩溃,报无效令牌语法错误
解决Node.js导入Redis时的SyntaxError问题
问题根源分析
报错里的?.是ES2020可选链操作符,Node.js v14及以上版本原生支持,v18.13.0完全兼容该语法。因此问题大概率是Redis客户端包版本不兼容、依赖安装损坏,或者实际运行的Node版本与预期不符。
具体解决方案
确认当前终端运行的Node版本:
执行命令:node -v确保输出为
v18.13.0,如果不是,说明可能通过nvm等工具切换到了其他版本,切换回目标版本即可。彻底清理并重新安装依赖:
- 删除依赖文件夹和锁文件:
rm -rf node_modules rm package-lock.json - 重新安装所有依赖:
npm install
- 删除依赖文件夹和锁文件:
指定兼容的Redis客户端版本:
如果最新版@redis/client存在适配问题,安装已知兼容Node.js v18的稳定版本:npm install @redis/client@1.5.14检查项目转译配置:
若项目使用Babel等转译工具,确认未错误将node_modules目录纳入转译范围——转译第三方包可能破坏其原生语法,导致可选链操作符被错误处理。
内容的提问来源于stack exchange,提问作者Debanjan Tewary
相关产品推荐
相关产品推荐

