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

Angular 9升级至15后本地运行报Uncaught SyntaxError错误

Angular 9升级到15后Node 16环境报错Unexpected token '.'的解决办法

问题分析

报错中的?.是ES2020的可选链操作符,Node 14.20已支持该语法,Node 16.16理论上完全兼容,出现此问题大概率是项目编译/打包配置未适配Angular 15要求,导致含可选链的代码未被正确转译,或是部分依赖的编译产物异常。

解决步骤

  • 检查TypeScript配置(tsconfig.json)
    确保target设置为ES2020或更低版本(比如ES2015),让TypeScript自动转译可选链这类高版本ES语法;同时确认lib数组包含对应版本的库:

    {
      "compilerOptions": {
        "target": "ES2020",
        "lib": ["ES2020", "DOM"]
      }
    }
    
  • 检查Angular CLI构建配置(angular.json)
    在architect.build.options中确认target和polyfills配置正确,Angular 15需保证polyfills覆盖必要ES特性支持:

    "build": {
      "options": {
        "target": "es2020",
        "polyfills": ["zone.js"],
        // 其他配置项...
      }
    }
    
  • 清理缓存并重新构建
    清除旧依赖、缓存和构建产物后重新安装构建:

    rm -rf node_modules package-lock.json yarn.lock
    npm cache clean --force
    npm install
    npm run build --prod
    

    本地运行前清除Angular CLI缓存:

    ng cache clean
    
  • 校验依赖版本一致性
    确保所有Angular核心依赖(@angular/core、@angular/cli等)均为15.x最新版本;排查第三方依赖是否兼容Angular 15,部分旧依赖可能未正确转译ES2020语法引发报错。

  • 确认Node运行环境
    使用node -v验证当前终端确实使用Node 16.16版本,避免nvm等版本切换工具导致的环境变量异常。


内容的提问来源于stack exchange,提问作者Madhan Lal JM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:12:08