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

Angular v19.0.1 NG0203注入上下文错误排查求助

解决Angular v19.0.1中的NG0203: Inject()必须在注入上下文调用错误

问题核心原因

从你提供的npm ls @angular/core输出来看,@angular/material依赖的@angular/core版本和项目锁定的v19.0.1不一致——Angular对核心包版本要求严格统一,跨版本的依赖会导致注入上下文冲突,直接触发NG0203错误。

具体解决步骤

1. 强制同步@angular/material版本

直接在package.json里把@angular/material的版本改成和Angular核心一致的19.0.1:

"@angular/material": "19.0.1",

然后执行安装命令:

npm install

2. 彻底清理依赖环境

如果同步版本后仍有问题,彻底清理依赖再重建:

  • 删除node_modules和锁文件:
rm -rf node_modules package-lock.json
  • 重新安装所有依赖:
npm install
  • 再次检查依赖树,确认所有@angular/core实例都是19.0.1:
npm ls @angular/core

3. 用npm overrides强制版本统一

如果某些间接依赖偷偷引入了低版本或高版本的@angular/core,在package.json里加overrides字段强制覆盖所有相关包的版本:

"overrides": {
  "@angular/core": "19.0.1",
  "@angular/common": "19.0.1",
  "@angular/material": "19.0.1"
}

执行npm install生效。

4. 检查Supabase服务的注入规范

确保你的Supabase服务是严格按照Angular依赖注入规则写的:

  • 服务类必须加@Injectable({ providedIn: 'root' })装饰器
  • 绝对不能在静态方法、非Angular管理的类实例里调用inject()

验证方法

  1. 运行npm ls @angular/core,确保输出里所有@angular/core的版本都是19.0.1,没有分叉的版本号
  2. 启动项目,查看控制台是否还会弹出NG0203错误
  3. 如果还是有问题,新建一个极简测试组件,只引入@angular/material的一个组件和Supabase服务,逐步排查是不是某个特定组件或服务的注入写法有问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 18:14:51