typescript 错误NG6002:出现在NgModule中,导入AppModule,但本身有错误

0ejtzxu1  于 2022-11-18  发布在  TypeScript
关注(0)|答案(6)|浏览(146)

我有角12在我的本地和建设项目,运行良好,没有任何错误。
我的本地设置:

Angular CLI: 12.0.5  
Node: 12.16.3  
Package Manager: npm 6.14.4  
OS: win32 x64  
Angular: 12.0.5

但是,当我在linux服务器上构建我的项目时,它却给出了这个错误,没有什么可处理的。
服务器设置:
第一次
app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { HeaderComponent } from './header/header.component';
import { FooterComponent } from './footer/footer.component';
import { NotifyFormComponent } from './notify-form/notify-form.component';
import { LoginComponent } from './login/login.component';

@NgModule({
  declarations: [
    AppComponent,
    HomeComponent,
    HeaderComponent,
    FooterComponent,
    NotifyFormComponent,
    LoginComponent
  ],
  imports: [
    AppRoutingModule,
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

app-routing.module.ts

import { LoginComponent } from './login/login.component';
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { NotifyFormComponent } from './notify-form/notify-form.component';
import { HomeComponent } from './home/home.component';

const routes: Routes = [
  {path:'',redirectTo:'/',pathMatch: 'full'},
  {
    path:'', 
    component: HomeComponent,
    children:[
      
    ]
  },
  {
    path:'notify', 
    component: NotifyFormComponent
  },
  {
    path:'login', 
    component: LoginComponent
  }
  // {
  //   path:'**', 
  //   component: HomeComponent
  // }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2017",
    "module": "es2020",
    "lib": [
      "es2018",
      "dom"
    ]
  },
  "angularCompilerOptions": {
    "enableI18nLegacyMessageIdFormat": false,
    "strictInjectionParameters": true,
    "strictInputAccessModifiers": true,
    "strictTemplates": true
  }
}

请帮助我,如果我做了什么可怕的错误在这里。这只是一个简单的项目测试。谢谢提前很多。

zqdjd7g9

zqdjd7g91#

我进行了一次疯狂的研究,这里有一个关于它的官方问题https://github.com/angular/angular/issues/35399。这里还有另一个关于它的问题error NG6002: Appears in the NgModule.imports of AppModule, but could not be resolved to an NgModule class。但是我会继续总结我所发现的东西。

  • 对于许多人来说,它的工作只是重新启动和重建项目,或做一个完整的强制npm缓存清除和重新安装节点模块和重建它。
  • 有人建议禁用tsconfig中的“ivy”,但也有人提到,虽然它的工作,这不是建议的方式来修复它。
  • 如果您向导入而不是声明中添加了组件,显然也会发生这种情况。
  • 如果您以root用户身份安装了一些包,或者由于某种原因您没有对所有包的权限,显然也会发生这种情况。然而,真实的的解决方案是首先正确地安装包,并配置npm config,这样您就永远不会使用root权限安装包。因此,如果您以root身份安装包,并尝试以非root身份运行项目,则会给予此问题。
  • 有些人在将服务添加到导入而不是提供程序时遇到错误。
  • 如果不正确地命名包,也会出现此错误,例如,将SomeComponentModule命名为SomeComponent。
  • 在你的具体情况下,你已经导入了应用路由器之前的浏览器模块,我不知道这是否会导致一个问题,但无论我看到的浏览器模块是在应用之前添加的,所以交换他们周围,如果没有其他工作,看看是否工作。

我能找到的就这些了。

r55awzrz

r55awzrz2#

你必须检查你是否导入了所有需要的东西到app.module.ts中,然后检查linux,也许有任何其他组件你需要添加,但它应该这样工作得很好

zengzsys

zengzsys3#

尝试npm版本应〉8.1.0,节点版本应〉v16.13.0

628mspwn

628mspwn4#

我在将项目从Windows转移到Linux时遇到了这个问题。
我的模块的导入路径有大写字母,这在Linux中失败,在Windows中有效。
例如,以下两种方法之一将在Windows上运行:

import { switchMap, tap } from 'rxjs/operators';
import { switchMap, tap } from 'rxjs/Operators';

在Linux上,只有小写版本可以使用:

import { switchMap, tap } from 'rxjs/operators';
fruv7luv

fruv7luv5#

我用ng serve命令修复了这个问题。当你在angular.json文件中更改配置时,你会遇到这个问题。

nkoocmlb

nkoocmlb6#

检查与出现问题的模块相关的组件中“templateUrl”和“styleUrls”中提到的路径是否正确,

@Component({
    selector: 'app-navigation-menu-item',
    templateUrl: './xxx.component.html',
    styleUrls: ['./xxx.component.scss']
})

在我的情况下,这是错误。

相关问题