Blueprintの基本
JHipsterはプラグイン
をサポートしており、私たちはそれらをBlueprint
とModule
と呼んでいます。
JHipster v7.9.0以前のModule
は、yo
を使用して実行されるYeomanジェネレータ、拡張されたgenerators-jhipster
のgenerator-base
クラス、およびJHipsterのワークフローに統合するための登録されたフックでした。
JHipster v7.9.0では、Module
は Blueprint
であり、スタンドアローンのジェネレータ(Blueprintではない)とカスタムCLIを備えています。
今後は、これらをスタンドアローンのBlueprint(または単にBlueprint)と呼びます。
JHipster Blueprintの基本的なルール
JHipster Blueprintとは以下となります。
- NPMパッケージとYeomanジェネレータです。
- https://yeoman.io/authoring/index.htmlに列挙されているYeomanルールの拡張に従います。
generator-
を前に付けるのではなく、generator-jhipster-
を前に付け、yeoman-generator
キーワードだけを持つのではなく、yeoman-generator
とjhipster-blueprint
の2つのキーワードを持つ必要があります。
使用方法
Blueprintを使用するには、次のコマンドを実行します。
jhipster --blueprints <blueprint name>
または、提供されているカスタムCLIを使用します。
jhipster-my-blueprint
例
JHipsterには多くの公式なBlueprintがあり、いくつかの例があります。
- バックエンド
- JHipster KotlinのBlueprintは、サーバサイドのJavaコードのほとんどを同等のKotlinコードに置き換えます。
- JHipster.NETのBlueprintは、サーバ側全体を.NET実装に置き換えます。
- JHipster NodeJSのBlueprintは、サーバ側全体をNestJS実装に置き換えます。
- バックエンドのカスタマイズ
- JHipster NativeのBlueprintは、JHipsterアプリケーションをSpring Native互換でカスタマイズします。
- フロントエンド
- Svelte HipsterのBlueprintは、クライアント側全体をSvelte実装に置き換えます。
- モバイル
- JHipster IonicのBlueprintは、Ionicアプリケーションを生成します。
Side-by-Side Blueprint
各ジェネレータは、side-by-side(SBS) Blueprintにできます。SBS Blueprintでは、元のジェネレータの動作は変更されませんが、動作と結果をカスタマイズできます。 SBS Blueprintは、複数のJHipsterバージョンをサポートし、新しいJHipsterバージョンに移植することを容易にします。
ジェネレータをside-by-sideにするには、コンストラクタに次のコードを追加します。
this.sbsBlueprint = true;
例:Native Blueprintのサーバジェネレータ。 この例では、ジェネレータはpackage.jsonのカスタマイズ、ファイルの削除、pom.xmlのカスタマイズ、Javaファイルのカスタマイズ、Cypressのカスタマイズなどを行っています。
side-by-side Blueprintは、フックを作成し、既存のモジュールの移行を支援するために使用できます。これについては、Moduleの作成で説明されています。
カスタムCLI
スタンドアローンのBlueprintはyo
を使用して実行できますが、yo
はジェネレータの検出に積極的で時間がかかる 可能性があり、いくつかの改善がされていません。JHipster CLIは、ヘルプとJHipster統合を提供します。
そのため、jhipster
CLIを使用するか、generator-jhipster
に基づいてカスタムCLIを作成することをお勧めします。
jhipster
コマンドは、グローバルにインストールされたgenerator-jhipster
バージョンを実行します。カスタムCLIは、依存するgenerator-jhipster
を実行し、サポートされているgenerator-jhipster
のバージョンを確実に使用します。
カスタムCLIを使用すると、カスタムジェネレータを実行できます。カスタムCLIについては、Moduleの作成で説明しています。
ローカルBlueprint
JHipsterによってカスタマイズされたコード生成がされると、アプリケーションをより簡単に更新し続けることができます。この目的を念頭に置いて、ローカル・Blueprintが実装されます。
Blueprint全体は、アプリケーションの.blueprint
ディレクトリ内に実装されます。
いくつかの利点があります。
- 再生成およびアップグレード時の矛盾を回避または削減します。
- エンティティファイルを一括編集できます。
- npmリポジトリーに公開する必要はありません。
- jhipsterワークフローを完全に制御します。
- 1つのコマンドで簡単に生成できます。