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

Angular中NgModule导入报错NG6002问题求助

解决Angular注入MAT_DIALOG_DATA导致的NG6002错误

问题背景

  • 在组件中通过@Inject(MAT_DIALOG_DATA)注入数据,代码示例:
constructor(
    @Inject(MAT_DIALOG_DATA) public data: any) {}
  • 触发以下NG6002错误:
Error: src/app/app.module.ts:24:5 - error NG6002: This import contains errors, which may affect components that depend on this NgModule.

24     HomeModule,
       ~~~~~~~~~~

Error: src/app/layout/home/home.module.ts:30:9 - error NG6002: This import contains errors, which may affect components that depend on this NgModule.

30         DialogModule
           ~~~~~~~~~~~~
  • 已尝试操作:重新安装node_modules、代码自查,问题仍未解决。

排查与解决步骤

1. 检查DialogModule的导入配置

确保在HomeModule中正确导入官方MatDialogModule(若使用自定义DialogModule,需确认其内部依赖配置):

// home.module.ts
import { MatDialogModule } from '@angular/material/dialog';

@NgModule({
  imports: [
    // ...其他模块
    MatDialogModule
  ]
})
export class HomeModule { }

2. 验证MAT_DIALOG_DATA的导入路径

确认组件中MAT_DIALOG_DATA的导入来源正确,避免拼写或路径错误:

import { MAT_DIALOG_DATA } from '@angular/material/dialog';

3. 清理Angular构建缓存

执行命令清除缓存,排除缓存导致的异常:

ng cache clean
rm -rf node_modules/.angular/cache

之后重新构建项目:

ng build

4. 检查Angular与Material版本兼容性

确认@angular/core和@angular/material的主版本号一致(例如均为16.x.x),版本不兼容会引发导入类错误。可查看package.json中的版本信息,必要时升级或降级至匹配版本。

5. 排查模块循环依赖

检查HomeModule与DialogModule是否存在循环导入(如A导入B,B又导入A),循环依赖会触发NG6002错误。可将共享依赖抽离至公共模块,重构模块结构解决。

内容的提问来源于stack exchange,提问作者M. S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:50:17