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

Angular 13模块已声明组件仍提示未识别问题咨询

问题根因

核心问题是你的AppModule的imports数组里错误引入了NgModule:
NgModule是用来定义Angular模块的装饰器,不属于可导入的功能模块类。Angular 13版本没有对imports数组内的无效值做容错处理,无效的导入项会直接中断整个模块的声明解析流程,哪怕组件已经被写入declarations数组,也不会被编译器正确识别;Angular 14版本新增了imports无效项的静默过滤逻辑,会自动跳过不符合模块规范的导入项,因此相同代码在14版本可以正常运行。

另外你配置的CUSTOM_ELEMENTS_SCHEMA仅用于屏蔽原生自定义元素(Web Component)的识别报错,对Angular框架自身声明的组件不生效,加这个配置解决不了当前问题。

修复步骤
  • 首先移除imports数组里的无效项NgModule,修正后的imports配置参考如下:
imports: [
  BrowserModule,
  AppRoutingModule,
  FormsModule,
  ReactiveFormsModule,
  NgChartsModule,
  RouterModule
],

注:如果你的AppRoutingModule已经导出了RouterModule,这里重复导入RouterModule不会触发报错,但属于冗余配置,可以按需删除。

  • 检查TesteComponent的组件元数据:确认@Component装饰器内的selector属性值确实为app-teste,不存在拼写错误、大小写错误、符号遗漏问题。
  • 配置修改完成后完全重启本地开发服务,Angular 13的开发编译器对模块配置变更的热更新存在缓存问题,残留的旧编译缓存会导致报错不消失,重启服务即可清空缓存。
  • 如果你给TesteComponent配置了standalone: true(独立组件),不要把它放在declarations数组里,直接移入imports数组即可,不过从你描述的14版本可正常运行的情况来看,这个问题的触发概率极低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:33:34