找不到“HomeModule”的 NgModule 元数据中的错误

Posted

技术标签:

【中文标题】找不到“HomeModule”的 NgModule 元数据中的错误【英文标题】:ERROR in No NgModule metadata found for 'HomeModule' 【发布时间】:2019-06-27 15:09:04 【问题描述】:

我在运行 Ionic CLI 命令ionic cordova run android 时收到标题中提到的错误。

我试图解决的问题:

检查main.ts 文件是否包含以下代码

platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.log(err));

删除node_modules 文件夹并运行npm install

使用in this answer 发布的命令重新安装 angular/cli。

app.module.ts:

import  NgModule  from '@angular/core';
import  BrowserModule  from '@angular/platform-browser';
import  RouteReuseStrategy  from '@angular/router';

import  IonicModule, IonicRouteStrategy  from '@ionic/angular';
import  SplashScreen  from '@ionic-native/splash-screen/ngx';
import  StatusBar  from '@ionic-native/status-bar/ngx';

import  AppComponent  from './app.component';
import  AppRoutingModule  from './app-routing.module';
import  HttpClientModule  from '@angular/common/http';
import  SijaintiService  from '../app/sijainti.service';
import  RouterModule, Routes  from '@angular/router';

@NgModule(
  declarations: [AppComponent],
  entryComponents: [],
  imports: [
    BrowserModule, 
    IonicModule.forRoot(), 
    AppRoutingModule, 
    HttpClientModule,
    RouterModule.forRoot([
       path: '', redirectTo: '/home', pathMatch: 'full' ,
       path: 'home', loadChildren: './home/home.module#HomeModule' ,
       path: 'tiedot', loadChildren: './tiedot/tiedot.module#TiedotModule' 
    ])
  ],
  providers: [
    StatusBar,
    SplashScreen,
     provide: RouteReuseStrategy, useClass: IonicRouteStrategy ,
    SijaintiService
  ],
  bootstrap: [AppComponent]
)
export class AppModule 

home.module.ts:

import  NgModule  from '@angular/core';
import  CommonModule  from '@angular/common';
import  IonicModule  from '@ionic/angular';
import  FormsModule  from '@angular/forms';
import  RouterModule  from '@angular/router';

import  HomePage  from './home.page';

@NgModule(
  imports: [
    CommonModule,
    FormsModule,
    IonicModule,
    RouterModule.forChild([
      
        path: '',
        component: HomePage
      
    ])
  ],
  declarations: [HomePage]
)
export class HomePageModule 

【问题讨论】:

您能在此处添加您的 AppModule 和 HomeModule 代码吗?或者您可以在stackblitz.com 创建一个项目并分享链接。 我在问题中添加了代码片段。 【参考方案1】:

您将模块命名为HomePageModule,错误是HomeModule 未定义。可能是笔误?

您可以将导出重命名为

export class HomeModule 

或者将延迟加载的模块修改为

 path: 'home', loadChildren: './home/home.module#HomePageModule' , // from HomeModule

【讨论】:

【参考方案2】:

将路由列表中的 HomeModule 更改为 HomePageModule,因为您的类名为 HomePageModule。

改变这个,

  path: 'home', loadChildren: './home/home.module#HomeModule' ,

到这里,

  path: 'home', loadChildren: './home/home.module#HomePageModule' ,

【讨论】:

我在这里为 ionic 4 创建了一个项目,stackblitz.com/edit/angular-ionic-4,请 fork 项目,添加您的代码并分享链接。 您的项目中没有路由器问题,问题似乎出在谷歌原生插件中。如果您使用的是旧插件版本,请考虑使用 ionic 4 的最新版本。我在这里复制了相同的代码并注释掉了 loadmap 函数 stackblitz.com/edit/angular-ionic-4-4sglyn 。正如我所说,该项目中没有路由器问题。 我在 Ionic 4 中使用 @ionic-native/google-maps 5.0.0.beta.26,但插件不起作用。关于如何让地图在 Ionic 4 中工作还有其他替代方法吗?还是我需要降级?

以上是关于找不到“HomeModule”的 NgModule 元数据中的错误的主要内容,如果未能解决你的问题,请参考以下文章

找不到“AppModule”的 NgModule 元数据

尽管运行“npm i @types/node --global”,为啥我得到“找不到名称'NgModule'”?

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

javascript 错误:找不到组件工厂。你有没有把它添加到@ NgModule.entryComponents

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

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