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

22

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

2801 export declare class HttpClientModule {

1
你的问题类似于这个链接中的问题:enter link description here - Arbahud Rio Daroyni
14个回答

20

重启您的服务器...

终止 Windows 服务器

ctrl + C

重新开始

ng serve

1
我在Angular 11中也遇到了同样的问题,谢谢你的解决方案...谢谢:-) - Saad Abbasi

14

我曾经遇到过同样的问题。
我在这里阅读评论https://github.com/angular/angular/issues/35399以找到解决方案。

我只需运行ng serve --prod,错误就消失了。之后我甚至运行了ng serve
其他提出的解决方案如下:

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

将我的应用程序从Angular 9->10->11更新后,在尝试“ng build”或“ng serve”时,我收到了有关软件包“ngx-lightbox”的NG6002错误。 对于我来说,运行“ng serve --prod”确实解决了这个问题,但是有人能解释一下为什么吗? 上面链接的GitHub问题中有一些评论表明“这对我有用”,但我没有看到任何解释。 - mfcallahan

10

package.json文件的scripts: {...}中添加"postinstall": "ngcc",然后运行npm run postinstall解决问题。

如果您仍希望保留Angular Ivy和AOT优势


谢谢。就这些了! - MrHIDEn

9

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

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


6

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

app.module.ts

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

4

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


在无数的解决方案中,只有这一个适用于我。 - user1029883
好吧,我收回之前的话,它编译通过了,但现在我得到了一个白色页面 :( - user1029883
只有这个解决方案对我起作用。很奇怪,为什么在我没有更改设置的情况下出现了这种情况 -> 只是在ts类中添加了一个简单的函数。 - EnGoPy
1
它会破坏构建。 - Vikram Sapate

4

对于我来说,在我的模块中的 'imports' 中声明了一个管道(Pipe)。显然,许多东西都可能引起这个错误。我不建议你禁用IVY,因为那不是问题所在。


2

我终止了当前的构建,然后重新启动了它。也就是说,ng serve 解决了我的错误。希望这能有所帮助。


1
在我的情况下,我已经在运行Angular服务器时包含了HttpClientModule。以下解决方案最适合我的情况:

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


0

我在Ubuntu上也遇到了同样的问题。但是当我使用sudo bash命令并执行ng serve时,问题得到了解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接