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