ExpressJS对接MongoDB服务执行npm start在MacOS报SyntaxError错误
问题根因
该报错是MacOS环境下的Node.js版本过低,无法支持代码中用到的ES2020新增语法(可选链?.、空值合并运算符??等)导致的语法解析错误,Windows环境Node.js版本满足语法要求因此可以正常启动。
解决步骤
- 首先确认两个环境的Node.js版本差异,分别在终端执行
node -v查看版本号,通常Mac端版本低于14.0.0时会触发该类报错(两类带?的新语法从Node.js v14.0.0开始原生支持)。 - 升级Mac端Node.js版本:
- 若使用nvm做Node版本管理,执行
nvm install --lts安装最新长期支持版本,再执行nvm use <安装的版本号>切换到对应版本即可。 - 未使用版本管理工具的话,直接下载Node.js官方最新LTS安装包覆盖安装即可。
- 若使用nvm做Node版本管理,执行
- 版本升级完成后,先在项目目录执行
npm install重新安装依赖,规避跨系统的依赖兼容性问题,再执行npm start启动服务。 - 若升级版本后仍有报错,检查项目的Babel转译配置,确认转译规则是否覆盖了
./bin/www.js启动文件。
内容的提问来源于stack exchange,提问作者Keng Hong
相关产品推荐
相关产品推荐

