Litefarm部署至Ubuntu 20.04时loginwithgoogle函数出现语法错误
问题原因
该问题核心是两个环境的Node.js运行版本不一致导致:Windows环境安装的是支持新版ECMAScript语法的高版本Node.js,而Ubuntu 20.04官方默认源安装的Node.js为12.x旧版本,无法解析loginWithGoogle函数中用到的新语法特性(比如可选链操作符?.、空值合并运算符??、对象扩展简写等写法),因此在代码解析阶段就会抛出语法错误。
排查&解决步骤
- 确认版本差异
分别在Windows、Ubuntu终端执行以下命令,查看版本是否匹配,同时可以查看项目根目录package.json中的engines字段,确认项目要求的最低Node.js版本:node -v npm -v - 升级Ubuntu环境的Node.js版本
建议直接安装项目对应要求的LTS版本,以安装18.x LTS为例,执行以下命令:
安装完成后再次执行curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejsnode -v确认版本符合要求。 - 重新安装项目依赖
删除原有依赖文件和缓存避免兼容性问题:rm -rf node_modules package-lock.json npm install - 重启项目测试
重新启动项目后语法错误即可消失。
补充排查点
如果版本一致仍报错,可检查文件换行符格式是否统一:Windows默认CRLF换行符在极少数场景下会导致Linux环境解析异常,可在IDE中将项目全局换行符设置为LF后重新上传代码测试。
内容的提问来源于stack exchange,提问作者raheel ashraf
相关产品推荐
相关产品推荐

