当我尝试使用以下命令构建应用程序时,我遇到了一个问题:
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来解决它。无法确定类的模块 C:/ test / src / pages / forgot-password / forgot-pas中的ForgotPasswordPage sword.ts!将ForgotPasswordPage添加到NgModule以修复它。不能 确定类LoginPage的模块 C:/test/src/pages/login/login.ts!将LoginPage添加到NgModule中 修理它。无法确定类SignupPage的模块 C:/test/src/pages/signup/signup.ts!将NgModule添加到的注册页面 修理它。无法确定欢迎页面类的模块 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页面添加到 NgModule来解决它。无法确定类ProfilePage的模块 在C:/test/src/pages/profile/profile.ts!将ProfilePa ge添加到 NgModule来解决它。无法确定类的模块 C中的OrderDetailPage:/test/src/pages/myorders/order-detail.ts!加 OrderDetailPage到NgModule来修复它。无法确定模块 对于C:/test/src/pages/myorders/myorders.ts中的MyOrdersPage类!加 MyOrde rsPage到NgModule来修复它。无法确定模块 对于C:/test/src/pages/logout/logout.ts中的LogoutPage类!加 LogoutPage到NgModule来修复它。无法确定模块 在C:/test/src/app/app.component.ts中的MyApp类!将MyApp添加到 NgModu le来解决它。无法确定类的模块 在C:/test/src/utils/pipes/RemoveUnderscore.t中删除UndercorePipe! 将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和声明添加了组件和管道。生产标志有什么我遗漏的吗? 我该如何解决这个问题?
答案 0 :(得分:5)
这也可能是文件名大小写问题。参见https://github.com/angular/angular-cli/issues/10732
答案 1 :(得分:1)
将声明更改为下面的页面并且有效。
declarations: pages
我得到了答案:https://forum.ionicframework.com/t/error-while-running-the-ionic3-app-in-production-mode/106294
答案 2 :(得分:0)
详细说明@ [Thom Kiesewetter]的答案
它也可能是模块或路线或其他任何地方
中使用的路径框问题参考例如路径为
从“ ./ E 实体/employee.component”中导入{EmployeeComponent};
代替
从“ ./entities/employee.component”中导入{EmployeeComponent};
真实路径是“ e 实体”而不是“ E 实体”
答案 3 :(得分:0)
我遇到了同样的问题,但对我来说,两个名称相同的组件出现在下面,
my-first-app \ src \ app \ header \ header.component.ts
my-first-app \ src \ header \ header.component.ts
第二个未使用且放置错误,因为我的所有代码都只在my-first-app \ src \ app内部。我删除了第二个,它解决了我的问题。
答案 4 :(得分:0)
我遇到了同样的问题,但对我来说,两个名称相似的组件带有额外的“s”,
RigDetailsInfoComponent
RigDetailInfoComponent
我们在这里可以清楚地看到第一个组件名称我有details和第二个组件名称detail,但angular仍然无法区分这两者。
我通过将组件名称之一更改为 RigGeneralInfoComponent
解决了这个问题