找不到“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 元数据中的错误的主要内容,如果未能解决你的问题,请参考以下文章
尽管运行“npm i @types/node --global”,为啥我得到“找不到名称'NgModule'”?
错误:找不到“AppModule”的 NgModule 元数据
javascript 错误:找不到组件工厂。你有没有把它添加到@ NgModule.entryComponents
出现在 AppModule 的 NgModule.imports 中,但无法解析为 NgModule 类
出现在 AppModule 的 NgModule.imports 中,但无法解析为 Angular 8 中的 NgModule 类