Angular项目运行报SyntaxError: Unexpected token { 错误如何解决
问题根因
你遇到的语法错误本质是版本不兼容,有两个核心冲突点:
catch {属于ES2019推出的可选catch绑定语法,只有Node.js 10+以上版本才支持该语法,你当前使用的Node.js版本远低于要求,无法解析该语法。- 你项目核心依赖是Angular 4.x,对应的
@angular/cli版本应该是1.x版本,但你安装的@angular/cli@12.1.0跨了11个大版本,和Angular 4完全不兼容,高版本cli依赖的@angular-devkit包使用了新版JS语法,进一步触发了语法报错。
修复步骤
按顺序执行以下操作即可:
- 先确认当前Node.js版本,执行命令
node -v,必须调整Node.js版本到v8.x或v10.x(更高版本的Node.js也无法兼容Angular 4),可以用nvm管理多版本Node.js。 - 卸载全局和项目内的高版本cli:
# 卸载全局cli npm uninstall -g @angular/cli # 卸载项目内cli npm uninstall @angular/cli # 清除npm缓存 npm cache clean --force
- 安装和Angular 4匹配的cli版本:
# 全局安装1.7.4版本cli npm install -g @angular/cli@1.7.4 # 项目内安装对应版本cli作为开发依赖 npm install @angular/cli@1.7.4 --save-dev
- 删除项目根目录下的
node_modules文件夹和package-lock.json文件 - 重新安装所有依赖:
npm install
- 执行启动命令验证:
ng serve
注意事项
- 禁止跨大版本混用Angular核心包和
@angular/cli版本,每个cli版本都有严格对应的支持Angular范围,12.x版本的cli仅能用于开发Angular 12的项目。 - 后续如果要升级Angular版本,需按官方指南逐步迭代升级,不要跳多个大版本直接升级cli。
内容的提问来源于stack exchange,提问作者Shekar
相关产品推荐
相关产品推荐

