あなたのJipsterスタープリントにCLIを加えてください


こんにちは私の仲間のヒップ.誰が彼の青写真のための彼自身のCLIを持って夢見たことがない?これが今日あなたにお見せしたいことです.

Jipsterバージョンとあなたの青写真


私のような場合は、多くのJipsterバージョンでプレーするように、あなたのフォークと公式Jhiipsterリリースの間に切り替えると、おそらくバージョン管理と闘争.私のJipsterコマンドが私が必要とするバージョンを起動すると確信する方法?そして、どのように私のユーザーが私の青写真を使用するときに悪い経験を持っていないことを確認しますか?

CLIはあなたの青写真の経験を改善する方法


JipHisterコマンドラインでプロジェクトを生成するときは、次のように入力します.
jhipster --blueprint myBlueprint
これは、Bluetoothを使用してJHipsterを起動することを意味“myBluePrint”グローバルJipsterインストールを使用して、またはローカルのいずれか.両方のケースでは、良いバージョンは、特定のバージョンとの互換性としてあなたの青写真を使用されることを確認することはできません.

あなたの青写真とそのCLIをつくってください


まず最初に、あなた自身の青写真を作成することから始めなければなりません、あなたは青写真ジェネレータをここで使うことができます:https://github.com/jhipster/generator-jhipster-blueprint
次に、ノードを含むCLIフォルダを追加する必要があります.JSコード.私は2つのファイル、アプリケーションに分割します.JS(私たちのためにJipHipsterを起動する)とutils.これはいくつかの関数を含みます.
  • アプリ.js
  •     #!/usr/bin/env node
    
        **const **fork = require('child_process').fork;
        **const **utils = require('./utils');
    
        **const **jhipsterPath = utils.generateJHipsterPath('../node_modules/generator-jhipster/cli/jhipster');
        **const **args = utils.initArguments('--blueprint', 'myBlueprint');
    
        utils.printBanner();
        fork(jhipsterPath, args);
    
  • utilsjs
  •     #!/usr/bin/env node
    
        **const **p = require('path');
        **const **chalk = require('chalk');
    
        **function **generateJHipsterPath(relativePath) {
            **const **absolutePath = p.join(__dirname, relativePath);
            **return **p.normalize(absolutePath);
        }
    
        **function **initArguments(...args) {
            **const **inputArgs = _removeNodeArgsInProcessArgv();
    
            **return **args.concat(inputArgs);
        }
    
        **function **_removeNodeArgsInProcessArgv() {
            **return **process.argv ? process.argv.slice(2) : [];
        }
    
        **function **printBanner() {
            /* eslint-disable no-console */
            console.log('\n');
            console.log(`${chalk.yellow('Welcome to myBlueprint JHipster Generator')}\n`);
    
            console.log('This CLI will call JHipster with myBlueprint blueprint for you. You could use all JHipster CLI options.\n');
    
            console.log(`${chalk.redBright('Ready ?... ')}${chalk.blueBright("Let's go!")}\n`);
    
            console.log(
                chalk.green(' _______________________________________________________________________________________________________________\n')
            );
            /* eslint-enable no-console */
        }
    
        module.exports = {
            generateJHipsterPath,
            initArguments,
            printBanner
        };
    
    このコードは、正しいJHipsterパスを生成します(このモジュールは、以下のようにします).-- blueprint myBlueprintこれが完了したら、ノードを登録するだけです.我々のパッケージの「ビン」としてのJSコード.JSON :
        "bin": {
          "myBlueprint": "./cli/app.js"
        }
    
    そして、"ファイル"エントリにCLIフォルダを追加します( NPM発行時に追加するには)
        "files": [
          "generators",
          "cli"
        ]
    

    リンクあなたの青写真


    あなたの青写真がNPMレジストリで公開されない限り、あなたはそれをリンクする必要があります.npm linkあなたの最終ユーザーのための簡単なインストールが必要ですnpm i -g generator-jhipster-myBlueprint

    あなたのCLI


    端末で、新しいフォルダを作成し、BluePrintコマンドを入力しますmyBlueprint私たちは、Jipsterバージョンが使用されていることを確認できます.JSON
    もちろん、オリジナルのJipHipster CLIで使用したようなオプションを追加できます.myBlueprint --skip-client --skip-git --skip-checks

    結論


    この記事があなたを助けてくれることを願っています.
    https://github.com/avdev4j/myBlueprint
    気軽にそれを使用してJipipsterに貢献してください.技術とhttps://github.com/jhipster