JHIPSTER一覧

目次

blueprintとは

直訳すると、青写真なんだけど、yeomanでいうところの、generator-generator

で、JHIPSTER5までは、moduleという概念だったんだけど、次の点が改善されていると思う。

レイヤーとは、たとえば、サーバとか、クライアントとか、エンティティ等である。

JHIPSTER6ぐらいから使われだした、JHIPSTER用のテンプレート生成テンプレート

翻訳元のサイト

https://www.jhipster.tech/modules/creating-a-blueprint/

いっておきますが、英語は得意ではありません。そして、意訳が多分にふくまれております。あしからず。

blueprintを作成する

JHipsterブループリントは、

yeomanのジェネレータの合成機能

https://yeoman.io/authoring/composability.html

をつかっています。

特定のJHipsterサブジェネレータから構成され、そのサブジェネレータの機能を拡張するYeomanジェネレータです。ブループリントは、サブジェネレータの定義済みゲッタをオーバーライドし、独自のテンプレートと機能を提供することができます。

JHipsterの青写真は、JHipsterのマーケットプレイス

https://www.jhipster.tech/modules/marketplace/#/list

にjhipster-blueprintラベルとともに記載されています。

これにより、JHipsterの特定の部分、たとえばクライアント側のテンプレートのみをオーバーライドできるサードパーティ製のブループリントを作成できます。

blueprintの使い方

ブループリントを使用するには、下記のコマンドを実行してください。

jhipster --blueprint <blueprint name>

Kotolinコードを生成するblueprint

JHipster Kotlinのblueprintは、同等のKotlinコードとサーバーサイドJavaコードのほとんどを置き換えます。

https://github.com/jhipster/jhipster-kotlin

JHIPSTERのBLUEPRINT使用例

クライアントのサブジェネレータであるbuleプリントを上書きする例

https://github.com/hipster-labs/generator-jhipster-sample-blueprint

blueprintの初期スケルトンの作成方法

JHipsterブループリントジェネレータを使用してブループリントを初期化できます。

JHipsterブループリントジェネレータを使用するには、以下のコマンドを実行します。

npm install -g generator-jhipster-blueprint

mkdir my-blueprint && cd my-blueprint

yo jhipster-blueprint

質問に答えながら上書きしたいサブジェネレータを選択してください。

JHipsterブループリントの基本事項

JHipsterのblueprintは:

下記に上げるような他のジェネレータ同様に、Yeomanのルールに従っています。

http://yeoman.io/generators/

なので、yoコマンドをつかってインストールしたり、更新したりできます。

. 先頭は generator-jhipster-で始めてください。

yeoman-generator と jhipster-blueprint の2つのキーワードをもっている必要があります。

ブループリントは、次のサブジェネレーター(ジェネレーターフォルダーの下)のみを拡張できます。

generator-jhipsterをインポートする

JHipsterブループリントは、依存関係としてgenerator-jhipsterを持っている必要があり、それをオーバーライドするために適切なsubジェネレータをインポートする必要があります。

    const chalk = require('chalk');
    const ClientGenerator = require('generator-jhipster/generators/client');
    ...

    module.exports = class extends ClientGenerator {
        constructor(args, opts) {
            super(args, Object.assign({ fromBlueprint: true }, opts)); // 変数fromBlueprintは重要です

            const jhContext = this.jhipsterContext = this.options.jhipsterContext;

            if (!jhContext) {
                this.error(`これは、JHIPSTERのblueprintです。 利用方法は、右記のような書式です。 ${chalk.yellow('jhipster --blueprint helloworld')}`);
            }

            this.configOptions = jhContext.configOptions || {};
            // このサブジェネレータ用のセットアップオプションはJHipsterで再利用してます。
            jhContext.setupClientOptions(this, jhContext);
        }

        get initializing() {
            // 親クラスのメソッドを直接よびだすことで何もyeomanのフェースを上書きしません。
            return super._initializing();
        }

        // other phases of the sub generator
    }

上記の例の ClientGenerator? のように、 アンダーバーで始まるメソッドは、親クラスで、再利用できます。

JHipsterのblueprintなどのサブジェネレータは、yeomanのフェーズで、どうするかの記述をします。

それぞれのyeomanのフェーズは、getterメソッドになっています。(get ではじまるやつ)

たとえば、get initializing を例にとってみます。

blueprintはフェーズでの処理を、オーバーライドすることで、カスタマイズすることができるのです。

yeomanのフェーズのカスタマイズ方法

1) なにもしない場合は、こちら

親クラスの初期化メソッドを呼び出しています。アンダーバーがついていますね。

2) フェーズを全部上書きする例, 自前の制御オンリーですね。

ブループリントから直接JHipsterの変数や関数にアクセスすることもできます。

利用可能な変数と関数

設定ファイル .yo-rc.json からの変数:

あなたはJHipster設定.yo-rc.jsonとあなたのblueprint設定の両方からなる設定にアクセスすることができます

グローバル変数 (ジェネレータ定数):

ジェネレータ定数で定数を使うことができます。

    const javaDir = `${jhipsterConstants.SERVER_MAIN_SRC_DIR + this.packageFolder}/`;
    const resourceDir = jhipsterConstants.SERVER_MAIN_RES_DIR;
    const webappDir = jhipsterConstants.CLIENT_MAIN_SRC_DIR;

関数:

あなたはgenerator-baseですべての関数を使うことができます:

   this.angularAppName = this.getAngularAppName(); // get the Angular application name.
   this.printJHipsterLogo(); // to print the JHipster logo

注意: generator-base.jsと内の変数generator-constants.jsはパブリックAPIの一部なので、semverのバージョン管理に従います。

しかしgenerator-base-private.js、utils.jsなどのような他のファイルはsemverのバージョン管理に従わず、マイナーバージョン間でメソッドシグネチャを壊すかもしれません。

blueprintの開発のお作法

blueprintの開発中に、以下の手順に注意してください。それらはとても重要です

JHipsterマーケットプレイスにblueprintを登録する

blueprintをJHipsterマーケットプレイスで入手できるようにするには、2つのキーワードが登録されてる必要があります。

公開されているnpm にあることを確認する必要がありますpackage.json。

しくったのを見つけた場合

JHipsterモジュールでもブループリントでもないエントリがマーケットプレイスに見つかった場合は、jhipster/jhipster.github に Pull Requestを送るという手段で、

modules-config.jsonファイルのblacklistedModulesセクションに追加することで、ブラックリストに追加できます。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS