次のコマンドを使用してアプリをビルドしようとすると、問題が発生します。
ionic cordova run Android --prod --release
次のようにコマンドを実行すると、すべてが正常に実行されます。
ionic cordova run Android
Iamの取得エラーは次のとおりです。
エラー:C:/test/src/pages/cart/cart-items.tsのCartItemsPageクラスのモジュールを特定できません! CartItemsPageをNgModuleに追加して修正します。 C:/test/src/pages/items/items.tsのItemsItemクラスのモジュールを特定できません! ItemsPageをNgModuleに追加して修正します。 C:/test/src/pages/user-home/user-home.tsのクラスUserHomePageのモジュールを特定できません!ユーザーホームページをNgModuleに追加して修正します。 C:/ test/src/pages/forgot-password/forgot-pas sword.tsのクラスForgotPasswordPageのモジュールを判別できません! ForgotPasswordPageをNgModuleに追加して修正します。 C:/test/src/pages/login/login.tsのクラスLoginPageのモジュールを特定できません! LoginPageをNgModuleに追加して修正します。 C:/test/src/pages/signup/signup.tsのSignupPageクラスのモジュールを特定できません! NgModuleにSignupPageを追加して修正します。 C:/test/src/pages/welcome/welcome.tsにあるWelcomePageクラスのモジュールを特定できません! WelcomePa geをNgModuleに追加して修正します。 C:/test/src/pages/pincode/pincode.tsにあるPincodePageクラスのモジュールを特定できません! PincodePa geをNgModuleに追加して修正します。 C:/test/src/pages/app-home/app-home.tsのクラスAppHomePageのモジュールを判別できません! AppHomeページをNgModuleに追加して修正します。 C:/test/src/pages/profile/profile.tsのクラスProfilePageのモジュールを判別できません! ProfilePa geをNgModuleに追加して修正します。 C:/test/src/pages/myorders/order-detail.tsのOrderOrderPageクラスのモジュールを特定できません! OrderDetailPageをNgModuleに追加して修正します。 C:/test/src/pages/myorders/myorders.tsのクラスMyOrdersPageのモジュールを判別できません! MyOrde rsPageをNgModuleに追加して修正します。 C:/test/src/pages/logout/logout.tsのクラスLogoutPageのモジュールを判別できません! NgModuleにLogoutPageを追加して修正します。 C:/test/src/app/app.component.tsのクラスMyAppのモジュールを判別できません! NgModuファイルにMyAppを追加して修正します。 C:/test/src/utils/pipes/RemoveUnderscore.tのクラスRemoveUnderscorePipeのモジュールを特定できません! RemoveUnderscorePipeをNgModuleに追加して修正します。
しかし、私はすべてのページとパイプを以下のようにapp.module.tsに追加しました:
// Imports
// The translate loader needs to know where to load i18n files
// in Ionic's static asset pipeline.
export function HttpLoaderFactory(http: Http) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
let pages:any = [
MyApp,
LoginPage,
UserHomePage,
SignupPage,
AppHomePage,
WelcomePage,
ItemsPage,
CartItemsPage,
ProfilePage,
MyOrdersPage,
OrderDetailPage,
ForgotPasswordPage,
PincodePage,
LogoutPage
];
let pipes = [RemoveUnderscorePipe];
export function declarations() {
return pages.concat(pipes);
}
export function entryComponents() {
return pages;
}
export function providers() {
return [
Api,
ItemsService,
UserService,
ToastService,
CartService,
OrdersService,
TokenService,
Camera,
GoogleMaps,
SplashScreen,
StatusBar,
// Keep this to enable Ionic's runtime error handling during development
{provide: ErrorHandler, useClass: IonicErrorHandler}
];
}
@NgModule({
declarations: declarations(),
imports: [
BrowserModule,
HttpModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [Http]
}
}),
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot()
],
bootstrap: [IonicApp],
entryComponents: entryComponents(),
providers: providers()
})
export class AppModule {
}
App.module.tsが表示される場合、entrycomponentsと宣言にコンポーネントとパイプを追加しています。生産フラグに足りないものはありますか。この問題を解決するにはどうすればよいですか?
宣言を以下のようなページに変更し、機能しました。
declarations: pages
私は答えを得ました: https://forum.ionicframework.com/t/error-while-running-the-ionic3-app-in-production-mode/106294
これはファイル名の大文字小文字の問題である可能性もあります。 https://github.com/angular/angular-cli/issues/10732 を参照してください