为什么实体的Angular Component和Module类名称以应用程序基本名称为前缀?

时间:2018-06-12 11:17:03

标签: jhipster

生成的Angular组件名称和模块名称以使用JHipster生成代码时指定的基本应用程序名称作为前缀,如下面针对生成的项目所示的实体模块导入所示。

在以下示例中,生成的entity.module.ts文件中,实体模块名称的前缀为“Gohomenotes”,我在生成代码时指定了基本应用程序名称“gohomenotes”。

@NgModule({
imports: [
    GohomenotesPersonModule,
    GohomenotesStudentModule,
    GohomenotesHomeRoomModule,
    GohomenotesTeacherModule,
    GohomenotesSchoolModule,
    GohomenotesHostRequestModule,
    GohomenotesGuestRequestModule,
    GohomenotesEarlyPickupRequestModule,
    GohomenotesTransportationChangeRequestModule,
    GohomenotesFamilyModule,
    GohomenotesFamilyMemberModule,
    GohomenotesAddressModule,
    GohomenotesPhoneNumberModule,
    GohomenotesGoHomeNotesSettingsModule

但是,相应的文件名不包含基本应用程序名称。这与Angular样式指南不一致,使得代码更难以阅读IMO。

除非有必要这样做的实际原因,否则我宁愿在组件和模块类名称上没有基本应用程序名称。如果从模块和组件类名中删除应用程序基本名称有什么危害吗?

1 个答案:

答案 0 :(得分:0)

我在Gitter上问了这个问题,得到了Shaheen Georgee @ 1in9ui5t的答复...

  

为什么实体的Angular Component和Module类名称以应用程序基本名称为前缀?

     

“ MyAppStudentModule”而不是只有一个名为“ Student”的实体时的“ StudentModule”吗?

最有可能避免与Angular应用程序中其他模块潜在的命名冲突。例如,假设您正在研究医疗应用程序,并且拥有一个测试实体来表示您的组织进行的某些医学检查;如果您生成了一个Test实体(我知道名字很差),那么生成的test.module.ts就会引起命名冲突,因为已经有一个使用该名称的模块了。

我在这里猜测一下,从过去的Jhipster代码来看,我知道其中有黑名单。

相关:Name collision by module import in Angular 2 - is there a way to prevent it