出现在 AppModule 的 NgModule.imports 中,但无法解析为 Angular 8 中的 NgModule 类

Posted

技术标签:

【中文标题】出现在 AppModule 的 NgModule.imports 中,但无法解析为 Angular 8 中的 NgModule 类【英文标题】:Appears in the NgModule.imports of AppModule, but could not be resolved to an NgModule class in angular 8 【发布时间】:2020-05-31 01:21:47 【问题描述】:

node_modules/@angular/common/http/http.d.ts:2801:22 中的错误 - 错误 NG6002:出现在 AppModule 的 NgModule.imports 中,但无法解析为 NgModule 类

2801 export declare class HttpClientModule 

【问题讨论】:

您的问题类似于enter link description here 【参考方案1】:

我在 ubuntu 中遇到了同样的问题。但是当我使用 sudo bash 命令并执行 ng serve 时。它解决了问题

【讨论】:

【参考方案2】:

在 NX 工作区中工作我刚刚遇到了这个问题。

经过大量搜索,我意识到我刚刚创建的内部库默认关闭了 Ivy。

我在其他任何地方都有它。是的,即使是我的图书馆。它们仅在 monorepo 内部,我们不公开它们中的任何一个,因此我们不希望有额外的步骤来使用已弃用的视图引擎指令编译它们,然后在其上运行 ngcc 以将其转换为 Ivy 代码。

结论:我只是忘了设置

  "angularCompilerOptions": 
    "enableIvy": true
  

在我新创建的库上,默认值为 false,这在我的情况下不起作用。

【讨论】:

【参考方案3】:

我遇到了同样的问题。我将service 添加到moduleapp.module.tsimports 数组中,而不是将其添加到providers 数组中。

app.module.ts

@NgModule(
  imports: [
    MyService // wrong here
  ],
  providers: [
    MyService // should add here
  ]
)
export class EventsModule  

【讨论】:

【参考方案4】:

重新启动您的服务器...

为 Windows 终止服务器

ctrl + C

重新开始

ng serve

【讨论】:

我在angular 11 遇到了同样的问题,您的解决方案解决了......谢谢:-)【参考方案5】:

只需重新启动服务器(在提示符下按 ctrl+c),然后再次运行 ng serve。

我遇到了同样的问题。然后我意识到以前我在 app.module.ts 中进行了一些更改,每次您在 app.module.ts 中进行更改时,请记住重新启动服务器进程。

【讨论】:

【参考方案6】:

在 angular.json 文件中设置 "aot": false 对我有用。

【讨论】:

海量解决方案中唯一对我有用的。 好吧,我收回它,它编译但现在我得到一个白页:( 哇..这工作。惊人的。感谢投票。 唯一对我有用的解决方案。这很奇怪,为什么它出现在我没有对设置进行任何更改时 -> 只在 ts 类中添加了一个简单的函数。【参考方案7】:

我终止了当前的构建并再次重新启动它。 即ng serve 解决了我的错误。希望能帮助到你。

【讨论】:

【参考方案8】:

在我的例子中,我包含了运行 Angular 服务器的 HttpClientModule 运行。 以下解决方案最适合我的情况

只需关闭服务器,然后重新打开它。 它会起作用的。

【讨论】:

【参考方案9】:

对我来说,我在模块的“导入”中声明了一个 管道。显然很多事情都会产生这个错误。我不建议你禁用 IVY,因为这不是问题。

【讨论】:

【参考方案10】:

package.json 中添加"postinstall": "ngcc"scripts: ... 然后运行npm run postinstall 即可解决问题。

如果你还想保持 Anuglar Ivy 和 AOT 的优势

【讨论】:

谢谢。就是这样!【参考方案11】:

我遇到了同样的问题。 我正在通过 https://github.com/angular/angular/issues/35399 这里的 cmets 寻求解决方案。

我简单地跑了ng serve --prod,错误就消失了。之后我什至跑了ng serve。 提出的其他解决方案是

确保您的库的 tsconfig.json 已设置 "importHelpers": true "enableIvy": false添加到tsconfig.app.json中的compilerOptions

【讨论】:

从 Angular 9 -> 10 -> 11 更新我的应用程序后,我在尝试 ng buildng serve 时收到包“ngx-lightbox”的 NG6002 错误。运行ng serve --prod 确实为我解决了这个问题,但谁能解释为什么?上面链接的 GitHub 问题有几个 cmets 表示“这对我有用”,但我没有看到任何解释。

以上是关于出现在 AppModule 的 NgModule.imports 中,但无法解析为 Angular 8 中的 NgModule 类的主要内容,如果未能解决你的问题,请参考以下文章

错误NG6002:出现在AppModule的NgModule.imports中,但本身有错误

Angular 12迁移问题错误NG6002:出现在AppModule的NgModule.imports中,但本身有错误

模块“AppModule”导入的意外指令“LoginPage”。请添加@NgModule 注释

错误:找不到“AppModule”的 NgModule 元数据

未捕获的错误:模块“AppModule”导入的意外指令“MatFormField”。请添加@NgModule 注释

ERROR in AppModule is not an NgModule