我有一个ionic 3项目,文件app.module.ts类似于:
@NgModule({
declarations: [
MyApp,
HomePage,
AdminPage,
ActuDetailPage,
],...
当我在Android设备上以dev身份进行部署时,没问题,但是当我使用--prod --release参数进行部署时,出现以下错误消息:
Type ActuDetailPage in /Users/poste5hookipa/sites/frApp4/src/pages/actu-detail/actu-detail.ts is part of the
declarations of 2 modules: AppModule in /Users/poste5hookipa/sites/frApp4/src/app/app.module.ts and
ActuDetailPageModule in /Users/poste5hookipa/sites/frApp4/src/pages/actu-detail/actu-detail.module.ts!
Please consider moving ActuDetailPage in
/Users/poste5hookipa/sites/frApp4/src/pages/actu-detail/actu-detail.ts to a higher module that imports
AppModule in /Users/poste5hookipa/sites/frApp4/src/app/app.module.ts and ActuDetailPageModule in
/Users/poste5hookipa/sites/frApp4/src/pages/actu-detail/actu-detail.module.ts. You can also create a new
NgModule that exports and includes ActuDetailPage in
/Users/poste5hookipa/sites/frApp4/src/pages/actu-detail/actu-detail.ts then import that NgModule in
AppModule in /Users/poste5hookipa/sites/frApp4/src/app/app.module.ts and ActuDetailPageModule in
/Users/poste5hookipa/sites/frApp4/src/pages/actu-detail/actu-detail.module.ts.
所以我必须取消评论:
@NgModule({
declarations: [
MyApp,
HomePage,
/* AdminPage,
ActuDetailPage,*/
对于后者,我可以按产品部署,但是使用相同的注释,在dev中进行部署会产生错误。 如何组织代码使其与开发人员和生产人员兼容?谢谢
答案 0 :(得分:0)
您可以创建一个共享模块,在其中声明Page组件,并将其添加到导出数组中
然后在您提到的2个模块中导入共享模块。
赞:
SharedModule:
@NgModule({
imports: [
...
],
declarations: [
AdminPage,
ActuDetailPage
],
exports: [
AdminPage,
ActuDetailPage
]
})
export class SharedModule { }
模块1和模块2:
@NgModule({
imports: [
SharedModule,
...
]
答案 1 :(得分:0)
我终于摆脱了这个问题,消息只说模块不属于任何模块,然后将actu-detail.ts放在模块文件中。实际上在actuDetailPageModule中声明了actu-detail.ts,但在AppModule中未导入ActuDetailPageModule。
在app.module.ts的@NgModule中,imports属性是一个模块数组,我只是添加了AdminPageModule,ActuDetailPageModule来解决此问题。
@NgModule({
declarations: [
MyApp,
HomePage,
],
imports: [
AdminPageModule,
ActuDetailPageModule,
....],