Не удается определить модуль для класса X в X.ts! Добавьте X в NgModule, чтобы исправить ошибку в ionic2
Я сталкиваюсь с проблемой, когда пытаюсь создать приложение с помощью следующей команды:
ionic cordova run android --prod --release
Все работает нормально, если я запускаю команду, как показано ниже:
ionic cordova run android
Я получаю ошибку:
Ошибка: невозможно определить модуль для класса CartItemsPage в C:/test/src/pages/cart/cart-items.ts! Добавьте CartItemsPage в NgModule, чтобы исправить это. Не удается определить модуль для класса ItemsPage в C:/test/src/pages/items/items.ts! Добавьте ItemsPage в NgModule, чтобы исправить это. Невозможно определить модуль для класса UserHomePage в C:/test/src/pages/user-home/user-home.ts! Добавьте пользовательскую домашнюю страницу в NgModule, чтобы исправить это. Невозможно определить модуль для класса ForgotPasswordPage в C: / test / src / pages / Forgot-Password / Forgot-Pas Sword.ts! Добавьте ForgotPasswordPage в NgModule, чтобы исправить это. Не удается определить модуль для класса LoginPage в C: /test/src/pages/login/login.ts! Добавьте LoginPage в NgModule, чтобы исправить это. Не удается определить модуль для класса RegistrationPage в C: /test/src/pages/signup/signup.ts! Добавьте RegistrationPage в NgModule, чтобы исправить это. Не удается определить модуль для класса WelcomePage в C: /test/src/pages/welcome/welcome.ts! Добавьте WelcomePa ge в NgModule, чтобы исправить это. Не удалось определить модуль для класса PincodePage в C: /test/src/pages/pincode/pincode.ts! Добавьте PincodePa ge в NgModule, чтобы исправить это. Не удается определить модуль для класса AppHomePage в C: /test/src/pages/app-home/app-home.ts! Добавьте AppHome Page в NgModule, чтобы исправить это. Не удается определить модуль для класса ProfilePage в C: /test/src/pages/profile/profile.ts! Добавьте ProfilePa ge в NgModule, чтобы исправить это. Не удалось определить модуль для класса OrderDetailPage в C: /test/src/pages/myorders/order-detail.ts! Добавьте OrderDetailPage в NgModule, чтобы исправить это. Не удается определить модуль для класса MyOrdersPage в C:/test/src/pages/myorders/myorders.ts! Добавьте MyOrde rsPage в NgModule, чтобы исправить это. Не удается определить модуль для класса LogoutPage в C:/test/src/pages/logout/logout.ts! Добавьте LogoutPage в NgModule, чтобы исправить это. Не удается определить модуль для класса MyApp в C:/test/src/app/app.component.ts! Добавьте MyApp в файл NgModu, чтобы исправить это. Невозможно определить модуль для класса RemoveUnderscorePipe в C: /test/src/utils/pipes/RemoveUnderscore.ts! Добавьте 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, я добавил компоненты и каналы к элементам ввода и объявлениям. Есть ли что-то, что мне не хватает для производства флага. Как я могу решить эту проблему?
6 ответов
Изменены объявления на страницах, как показано ниже, и это сработало.
declarations: pages
Я получил ответ по адресу: https://forum.ionicframework.com/t/error-while-running-the-ionic3-app-in-production-mode/106294 the-ionic3- app-in-production-mode/106294
Это также может быть проблемой с регистром имени файла. см. https://github.com/angular/angular-cli/issues/10732
Уточняет ответ @[Thom Kiesewetter]
Это также может быть ссылка на проблему с оболочкой пути, используемую в модуле, в маршрутах или где-либо еще.
например, путь был
импортировать { EmployeeComponent } из "./Entities/employee.component";
вместо того
импорт { EmployeeComponent } из "./х ntities/employee.component";
где реальный путь был "е ntities", а не "E ntities"
У меня была такая же проблема, но для меня два компонента с одинаковым именем были примерно так, как показано ниже,
мое первое приложение \ SRC \ приложение \ заголовок \ header.component.ts
мое первое приложение \ SRC \ заголовок \ header.component.ts
второй не используется и размещен неправильно, так как все мои коды были только внутри my-first-app \ src \ app. Я удалил второй, и это решило мою проблему.
У меня была такая же проблема, но для меня два компонента с похожим именем с дополнительным «s»,
РигДетилсИнфоКомпонент
RigDetailInfoComponent
Мы можем ясно видеть здесь, в имени первого компонента у меня есть детали , и в имени второго компонента , деталь , но angular не различает эти два.
Я решил это, изменив одно из имен компонентов на RigGeneralInfoComponent.