You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular旧项目执行ng serve时transforms.js出现语法错误求助

解决Angular项目ng serve报错Unexpected token '??='的方案

错误原因分析

  1. Node.js版本过低:??=是ES2021的空值合并赋值运算符,仅支持Node.js 14.17.0及以上版本(Angular 17要求Node.js 18.13.0+或20.9.0+),当前Node.js版本不支持该语法。
  2. 依赖版本不兼容:项目中Angular CLI版本为14.2.13,但@angular-devkit系列依赖却使用了17.2.0,跨大版本的依赖混合会引发兼容性问题。

具体解决步骤

步骤1:升级Node.js版本

  • 查看当前Node.js版本:执行命令 node -v
  • 安装符合要求的Node.js版本:推荐安装LTS版本(如18.x或20.x),可直接通过Node.js官网下载安装包,或使用nvm(Node版本管理器)切换版本:
    # 安装nvm后,执行以下命令安装并切换到指定版本
    nvm install 18.19.0
    nvm use 18.19.0
    

步骤2:统一Angular依赖版本

方案A:降级@angular-devkit依赖匹配Angular CLI 14

修改项目根目录下的package.json文件,将所有@angular-devkit开头的依赖版本改为0.1402.13,typescript版本改为4.8.x(Angular 14对应TS版本范围):

{
  "devDependencies": {
    "@angular-devkit/architect": "0.1402.13",
    "@angular-devkit/build-angular": "14.2.13",
    "@angular-devkit/core": "14.2.13",
    "@angular-devkit/schematics": "14.2.13",
    "@angular/cli": "14.2.13",
    "@schematics/angular": "14.2.13",
    "typescript": "4.8.4"
  }
}

执行以下命令重置依赖:

# Windows系统
rmdir /s /q node_modules
del package-lock.json

# macOS/Linux系统
rm -rf node_modules package-lock.json

npm install

方案B:升级整个Angular项目到17.x版本

若计划升级项目,执行官方升级命令:

ng update @angular/cli@17 @angular/core@17

升级过程中按提示处理依赖冲突,确保所有Angular相关依赖版本统一为17.x。

步骤3:重新启动项目

完成上述操作后,执行 ng serve 尝试启动项目。

内容的提问来源于stack exchange,提问作者Anna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 09:46:00