编译报错:MatTooltipModule 不是 NgModule,求错误原因
解决
ERROR in MatTooltipModule is not an NgModule问题 这个错误通常是由Angular Material版本的导入方式不匹配或者依赖版本兼容问题导致的,下面分两种最常见的情况来分析和解决:
1. 使用Angular Material 15+版本(独立模块模式)
从Angular Material 15开始,官方改为了独立组件/模块的架构,每个UI组件的模块需要从具体的子路径导入,而不是统一从@angular/material导入。
你当前的导入方式:
import {MatSliderModule, MatTooltipModule} from '@angular/material';
在15+版本中是错误的,因为@angular/material根路径下已经不再导出这些具体的NgModule了。你需要修改为:
// 分别从对应子路径导入 import { MatSliderModule } from '@angular/material/slider'; import { MatTooltipModule } from '@angular/material/tooltip';
然后保持imports数组里的配置不变即可。
2. 使用Angular Material 14及更早版本
如果你的项目用的是14或更早的版本,出现这个错误大概率是以下原因:
- 依赖版本不兼容:确保
@angular/material的版本和你的@angular/core、@angular/common等核心包版本完全一致。比如如果你的Angular核心是14.2.x,那么@angular/material也必须是14.2.x,版本不匹配会导致模块无法被正确识别为NgModule。 - 模块未正确引入:在极早期的Angular Material版本(比如2.x beta版)中,
MatTooltipModule可能还未被单独拆分出来,你需要检查是否需要导入MatCoreModule或者确认你的版本是否支持该模块。可以通过查看项目中package.json里的@angular/material版本,再对照官方文档确认模块的导入方式。
另外,也可以尝试删除node_modules和package-lock.json(或yarn.lock),重新执行npm install(或yarn install)来修复可能的依赖损坏问题。
内容的提问来源于stack exchange,提问作者strypeez
相关产品推荐
相关产品推荐

