When I run npm run ionic:build I am able to build successfully. But When I run npm run ionic:build --prod I am getting following error mess
You don't need to declare anything on app.module.ts
about PatientDetailPageModule
.So remove all references to it.If you need to use PatientDetailPageModule
module inside another component then just import
like below.
another.module.ts
@NgModule({
imports: [
PatientDetailPageModule,
],
})
Use Cordova builds:
ionic cordova build android --prod
If you are using a component as an entryComponent within a module you do not need to declare it within the Module. Try removing PatientDetailPage
from the declarations
on your app.module.ts
.
So the best way to do this in my opinion is to export
your PatientDetailPage
out from your PatientDetailModule
and import the PatientDetailModule
into your App Module.
App Module
@NgModule({
imports: [
BrowserModule,
IonicModule.forRoot(MyApp),
AngularFireDatabaseModule,
AngularFireModule.initializeApp(firebaseConfig),
AngularFireOfflineModule,
PatientDetailModule,
IonicStorageModule.forRoot()
// PatientDetailPage
],
declarations: [
MyApp,
HomePage
],
entryComponents: [
MyApp,
HomePage,
PatientDetailPage
],
providers: [
StatusBar,
SplashScreen,
//AngularFireModule,
//Storage,
{provide: ErrorHandler, useClass: IonicErrorHandler}
],
bootstrap: [IonicApp],
})
Patient Module
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { PatientDetailPage } from './patient-detail';
@NgModule({
declarations: [
PatientDetailPage,
],
imports: [
IonicPageModule.forChild(PatientDetailPage),
],
exports: [
PatientDetailPage
]
})
export class PatientDetailPageModule {
}
This is a basic error of angular. You can see the issue here. So the answer that is accepted till now is use share module. You can do like this:
- Create a share.module.ts
- Import
, declaration
and export
your component in this share.module.ts
import { NgModule } from '@angular/core';
import {SharedComponentA} from "./SharedComponentA";
import {SharedComponentB} from "./SharedComponentB";
@NgModule({
imports: [
],
declarations: [
SharedComponentA,
SharedComponentB
],
providers: [
],
exports: [
SharedComponentA,
SharedComponentB
]
})
export class SharedModule {}
- If you want to use your component in a Ionic Page(lazy load page), import share module in the module of that Ionic page:
import {SharedModule } from './SharedModule';
@NgModule({
imports: [
SharedModule
//..
],
//..
})
- If you want to use your component in other component or no lazy load page, import share module in your app.module.ts like above.
See more about ngModule