Не удается определить модуль для класса 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.

Другие вопросы по тегам