Strapi从4.3.6升级到4.4.5后生产环境启动报语法错误
Strapi 4.4.5生产环境启动报错SyntaxError: Unexpected token '.'的解决方案
错误分析
报错指向@strapi/database模块中的可选链操作符?.无法被识别,虽然你当前Node.js版本为17.9.1(原生支持该语法),但实际运行环境大概率存在版本不匹配或依赖残留问题。
排查与解决步骤
确认实际运行的Node.js版本
在项目根目录执行node -v,验证输出是否为17.9.1。同时检查package.json中的start命令,确认未指定其他Node版本,若使用nvm等版本管理工具,需确保当前终端会话已正确切换到目标版本。清理依赖并重新构建
- 删除旧依赖文件:
rm -rf node_modules rm package-lock.json - 重新安装依赖:
npm install - 重新构建生产环境代码:
npm run build - 再次启动服务:
npm run start
- 删除旧依赖文件:
检查进程管理工具的Node版本(若使用)
若用pm2等工具启动服务,需确认其使用的Node版本为17.9.1。可执行pm2 show <你的应用名称>查看Node路径,或通过pm2 start npm --name "strapi-app" -- run start强制使用当前终端的Node版本启动。排查自定义转译配置(若有)
若项目配置了Babel等转译工具,检查生产环境的转译规则是否包含可选链语法的支持,确保转译后的代码能被当前Node环境正常解析。
内容的提问来源于stack exchange,提问作者Kirill Novikov
相关产品推荐
相关产品推荐

