Hiểu biết tổng quan #
Phiên bản JHipster: 8.0.0
Mã nguồn JHipster #
Khi có ý định tùy biến code, bạn cần khoanh vùng xem cần tác động đến các sub-generator nào trong
generator-jhipster
để sinh được code như ý muốn. Do đó bạn cần clone
generator-jhipster
về máy để:
- Tra cứu mọi thứ nhanh chóng.
- Sao chép code, đặc biệt là biểu mẫu về blueprint rồi sửa trên đó.
Ghi nhớ
Bạn phải checkout đến đúng tag release tương ứng với phiên bản JHipster đang cài ở máy.
Nguyên lý sub-generator #
Kiến trúc và tên gọi class của v8 có nhiều thay đổi so với v7, đáng chú ý là mọi blueprint sẽ kế thừa từ lớp BaseApplicationGenerator
chứ không phải từ lớp của sub-generator gốc như v7.
Danh sách đầy đủ các generator tại:
generators/generator-list.mjs
Tổ tiên của mọi sub-generator là YeomanGenerator
, nên bạn có thể sử dụng API của Yeoman trong mọi sub-generator.
Ôn lại về Yeoman tại đây.
Nguyên tắc khi viết blueprint:
Khi cần tác động đến code sinh bởi sub-generator nào, bạn cần kế thừa sub-generator đó. Hãy nhìn các sub-generator của
MyBlueprint
ở diagram phía trên.
BaseGenerator #
Đường dẫn:
generators\generator-base.js
BaseGenerator
là lớp cha, mà như tên gọi, đóng vai trò lớp nền tảng của generator JHipster. BaseGenerator
đã thêm mới cũng như override nhiều method phục vụ cho nghiệp vụ của JHipster, mà các lớp con kế thừa có thể khai thác.
- Thông tin ứng dụng
getFrontendAppName
- Caching
addEntryToEhcache
- Build tool
addNpmScript
buildApplication
addMavenRepository
addMavenPlugin
addGradleProperty
addGradlePlugin
- Filesystem
writeFilesToDisk
editFile
Danh sách đầy đủ các method các bạn không cần nhớ, hãy tra cứu trực tiếp trong source của generator-jhipster
khi cần.
BaseBlueprintGenerator #
Đường dẫn:
generators\generator-base-blueprint.js
Lớp con của BaseGenerator
và là lớp cha trực tiếp của mọi sub-generator JHipster. Method quan trọng nhất trong lớp này là
composeWithBlueprints
. Mỗi lớp con trực tiếp đều gọi đến method này.
Priority #
Xem lại priority trong Yeoman.
v8 mở rộng lên 21 tầng so với 12 tầng trong v7.