【发布时间】:2021-05-31 14:18:13
【问题描述】:
我正在将大型 V8 应用程序迁移到 V9,并且在使用 Material 组件的组件时遇到错误。我收到error NG8001: 'mat-icon' is not a known element。我通过将MatIconModule 的导入语句添加到包含组件定义的目录中的*.module.ts 文件来解决此问题。我遇到的问题是在此目录上方的目录中还有另一个 *.module.ts 包含此导入语句,但 V9 在搜索导入语句时似乎忽略了该文件。例如:-
+ parent-dir
+ child-dir
component-dir
child-dir.module.ts
+ parent-dir.module.ts
在此示例中,component-dir 中的组件出现错误,因为 child-dir.module.ts 文件中缺少 import 语句,即使它位于 parent-dir.module.ts 文件中。当我将 import 语句添加到 child-dir.module.ts 文件时,它解决了这个问题。
在 V8 中,如上所述放置 import 语句是可行的,但似乎在 V9 中,它不再向上遍历目录层次结构来查找导入语句。
这是否记录在任何地方,因为我还没有找到它,这是否会在 V10、V11 和 V12 中继续以这种方式工作?我需要了解这一点,因为我的任务是将这个 V8 应用程序一直迁移到 V12。
【问题讨论】:
-
您是否尝试将组件目录放在导出数组中?
-
@GabrielSereno 问题不在于
component-dir,而在于MatIconModule。您的建议让我更仔细地查看所有@NgModule类,因为大多数其他模块类导入的共享模块类导出数组中缺少MatIconModule。
标签: angular angular9 angular-ivy