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

Angular 16升级至19后Workspace启动报NG0203错误求助

解决Angular工作区升级后新项目NG0203错误的方案

针对你在混合版本Angular工作区中新增19项目出现的NG0203注入上下文错误,以下是针对性的解决步骤:

  • 统一工作区所有Angular包版本
    检查工作根目录和新项目的package.json,确保@angular/core、@angular/cli、@angular/common、@angular/compiler等核心包的版本完全一致(均为19.x.x)。工作区中旧项目的残留依赖可能导致版本冲突,覆盖了新项目的正确依赖。

  • 彻底清理依赖缓存
    执行以下操作完全重置依赖环境:

    1. 删除根目录和新项目下的node_modules文件夹
    2. 删除package-lock.json(或yarn.lock/pnpm-lock.yaml)
    3. 运行ng cache clean清理Angular CLI缓存
    4. 重新执行包安装命令(npm install/yarn install/pnpm install)
  • 校验新项目的构建配置
    打开工作区angular.json,确认新项目的architect.build.options配置:

    • 确保tsConfig指向新项目自身的tsconfig.app.json,而非工作区根目录的旧配置
    • 检查是否存在preserveSymlinks配置,若有可尝试暂时移除,避免符号链接导致的依赖加载异常
  • 修正TypeScript配置
    查看新项目的tsconfig.json和tsconfig.app.json,确保:

    • compilerOptions.moduleResolution设置为bundler(Angular 19默认值)
    • compilerOptions.target设置为ES2022或更高版本
    • 移除任何可能干扰模块解析的旧配置(如paths中指向旧版本库的映射)
  • 确认启动代码的正确性
    检查新项目的main.ts,确保使用Angular 19独立组件的标准启动方式:

    import { bootstrapApplication } from '@angular/platform-browser';
    import { AppComponent } from './app/app.component';
    import { appConfig } from './app/app.config';
    
    bootstrapApplication(AppComponent, appConfig)
      .catch(err => console.error(err));
    

    避免混用旧的模块式启动代码(platformBrowserDynamic().bootstrapModule),两者的注入上下文机制不兼容。

  • 升级工作区中的库项目
    若工作区的库仍为Angular 16版本,需同步升级到19:

    1. 进入库目录,执行ng update @angular/core@19 @angular/cli@19
    2. 重新构建库项目(ng build your-library)
      旧版本库的代码可能包含与Angular 19注入机制冲突的逻辑。
  • 重新生成新项目对比配置
    在工作区中执行ng generate application temp-app --style=scss --no-ssr生成一个全新的Angular 19项目,将其配置文件(angular.json、tsconfig.json、package.json)与出错项目逐一对比,找出被遗漏或错误修改的配置项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:11:15