MatToolbar 在与 Angular 9 一起使用时抛出错误

Lin*_* Vu 52 angular-material angular

角版本 9.2.0

当我MatToolbarModule在模块中导入并在 html 模板中使用它时,我收到以下错误消息:

这可能意味着声明 MatToolbarModule 的库 (@angular/material/toolbar) 没有被 ngcc 正确处理,或者与 Angular Ivy 不兼容。检查是否有更新版本的库可用,如果有则更新。还可以考虑与库的作者核对以查看该库是否与 Ivy 兼容。

8 export declare class MatToolbarModule {
                       ~~~~~~~~~~~~~~~~
src/app/angular-material.module.ts:53:14 - error NG6002: Appears in the NgModule.imports of ComponentsModule, but itself has errors
Run Code Online (Sandbox Code Playgroud)

有没有人面临同样的问题?

小智 86

package.json和 中添加以下特定配置npm install

{
  "scripts": {
    "postinstall": "ngcc"
  }
}
Run Code Online (Sandbox Code Playgroud)

参考https : //angular.io/guide/ivy#speeding-up-ngcc-compilation

  • 我已经在没有 ngcc 的情况下修复了它。我正在使用 Angular 9,在 npm i 材料期间,他采用了 Angular/Material 版本 10。我已经从 npm i 更改为 ng add Angular/Material,然后它就起作用了。 (3认同)
  • 对我来说它有效,只需关闭正在运行的实例,npm install 并完成...... (2认同)
  • 感谢将链接添加到文档,这样我们就不会盲目地更改项目配置! (2认同)

小智 81

我以前遇到过同样的问题,因为您app.module.ts在服务器运行时修改了文件。尝试停止它,然后使用该ng serve命令再次运行它。

  • 有人知道为什么这有必要吗?它对我有用,但我讨厌“你尝试过将其关闭然后再次打开吗?” 在不了解真正问题的情况下解决问题。顺便说一句,我并没有对答案提出错误(我投了赞成票),但只是好奇比什么都重要。 (2认同)

Chr*_*ney 45

每当我导入“MatToolbar”“MatDialog”而不是“MatToolbarModule”或“MatDialogModule”时,我都会发生这种情况。

  • 谢谢。你救我。 (2认同)
  • 伙计,我可能会因为这个愚蠢的错误而损失很多时间! (2认同)
  • 救生建议:) 谢谢! (2认同)

GAU*_*SHI 11

我在使用 MatDatePicker 时遇到了类似的问题。问题是我已经导入MatDatepicker而不是导入到文件MatDatepickerModuleapp.module.ts

因此,请检查您是否在模块文件中导入了 MODULE 而不是 Component。