ここんとこPWA(Progressive Web Application)作ろうとしていて、
ずっとJEEかなぁって思ってたんですけどSpringの勢いが凄くて、
それと今ならSPAでぼくはAngular派なので、
それに今時認証は自分でやりたくないよねとOAuth2で、
連動させるの大変だなぁとかって思ってたら、
そういうの全部ひっくるめたJHipsterというのがあるんだ!
というのが衝撃でした。
かなり前からあったんですね。
ただこれ難しいですね。
scaffoldingまでは簡単ですけど、
そこからどうしていいのか。
自動生成filesはなるべく弄りたくないですが、
そうもいかないですよねこれ。
samplesも、「そこから先」についてはなかなか。
JHipster Mini-Book 4.0も見てみましたものの、それをなぞって行けるわけでは無かったので。
scaffoldingと、JDLでentities作って、
jhipster spring-controller Fooやng g component Barとかのcommandで取っ掛かりを作って、
そこから作り込んでいく、感じでしょうか。
Angular CLIがうまく動かなかった等あったのでメモ。
jhipsterのversionが変われば、こんな知識も不要になると思われますが。
- JDLでfield名はsnakeやhyphenationではなくcamelで。
DBだからhyphenかなと思ったんですが、
生成されたclassのfield名がcamelにならなかったので。
- JDLでUserは特別なentity。
Manualに書いてありました。
scaffoldingの次は取り敢えず
JDL Studioでentity作成、import、
になるのに、解説すっ飛ばしてJDL見たので、なんだろう?って思うんですよね。
- jhipster 4.13.3で入るAngular CLI(
./node_modules/@angular/cli/)のversionは
1.6.0(package.json)でbug持ち(@angular-devkit/coreが入らない)なので、
ng g ...が失敗します。package.json中の@angular/cliの
version numberを最新のもの(本執筆時点では1.6.6)に書き換え、
yarn installするとうまく行きました
(Angular CLIをglobalでinstallしてもlocalのversionのモノを使うのでダメ、
@angular-devkit/coreを個別にnpm install ...しても、
次から次へと足りないものが出て来て、
全部入れた挙句の果てにyarn startがコケるようになるのでダメ)。
ng g component Fooとしてそれを表示させるにはどうしたらいいんだろう? と悩みました。route作ってそこで表示させるべく、他のentityとか見よう見真似でfoo.route.ts作ってpath直打ちして試したものの、表示されず。errorも何も出ないので、何が悪いのか分かりません。多分登録が届いてないんだろうとは思ってたんですけど、具体的にどこをどう直せばいいのかわけわかめです。StackOverflowに回答があったので出来ました。結局、0.ng g component Fooでcomponentを作る 1.foo.route.tsを作る(その際Routesで配列にするのではなくRouteで単数に?) 2.index.tsを真似して作る(foo.moduleのimportは記載不要) 3.foo.module.tsを作る 4.app.module.tsに登録(その際Angular CLIが自動登録したcomponentは削除しないとtop pageが表示されず) →そもそもcomponentではなくmoduleをgenerateするべきだったのでしょうか。よくわかりませんが、scaffoldingの後のことはなかなか書いてないので、「こんなのわかんないよー」という感じです。
JHipsterは「Java/Angular版Rails」か! とも思ったんですが、
もう出てだいぶ経つみたいですし、
でもまだそこまで洗練されてはいないのかなと。
Angularの難しさ、面倒臭さ、
とnode modules周りの変化が激しいのもあるためか、
使いこなすのはなかなか大変だと思います。