Grunt入門ガイド5:プロジェクト足場

17467 ワード

Project Scaffoldingプロジェクト足場


grunt-init


Grunt-initはプロジェクトを生成するための足場ツールである.現在の環境およびコマンドの問答結果に基づいて、完全なプロジェクトディレクトリ構造が作成されます.実際に生成するプロジェクトファイルと内容は、選択したテンプレートおよび問答結果に依存する.

インストール


grunt-initの使用を開始する前に、grunt-initをグローバルにインストールする必要があります.
npm install -g grunt-init


インストール後、任意のディレクトリでgrunt-initコマンドを使用することができる.

Usage使用

  • は、grunt-init --helpを使用するプログラムヘルプおよび利用可能なテンプレートリストを得ることができる.
  • grunt-init TEMPLATEを用いる、指定されたテンプレートに基づいてプロジェクト
  • を生成することができる.
  • grunt-init /path/to/TEMPLATE指定位置に基づく型版生車プロジェクト
  • ほとんどのテンプレートは現在のディレクトリでファイルを生成するので、既存のファイルが上書きされないことを確認してください.

    Installing templatesインストールテンプレート


    テンプレートが~/.grunt-init/ディレクトリ(windows下は%USERPROFILE%\.grunt-init\)にインストールされると、grunt-initで直接使用できます.gitクローンテンプレートをこのディレクトリに推奨する.たとえばgrunt-init-jqueryテンプレートをインストールすると、次のようになります.
    git clone [email protected]:gruntjs/grunt-init-jquery.git ~/.grunt-init/jquery
    
    

    クローン作成時にテンプレートのディレクトリ名を変更し、grunt-initを使用する場合は変更後のディレクトリ名を使用します.
    次のテンプレートは、*grunt-init-commonjs*grunt-init-gruntfile*grunt-init-gruntplugin*grunt-init-jquery*grunt-init-nodeの公式メンテナンスです.

    Custom templatesカスタムテンプレート


    カスタムテンプレートを作成して使用することができます.テンプレートも前述の構造に構築します.my-templateというサンプルテンプレートには、次のファイル構造があります.
  • my-template/template.js-マスターテンプレートファイル.
  • my-template/rename.json-テンプレートの特殊な名前変更規則は、テンプレートによって処理する.
  • my-template/root/-ディレクトリ内のファイルがターゲットパスにコピーする.

  • これらのファイルが/path/to/my-templateに存在すると仮定する、コマンドgrunt-init /path/to/my-templateを用いてこのテンプレートを処理する.複数の同名でないテンプレートは、内蔵のテンプレートのように同じディレクトリに存在することができる.
    また、~/.grunt-init/のディレクトリにカスタムテンプレートを配置すると、grunt-init my-templateを直接使用することができます.

    コピーファイル


    1つのテンプレートがinit.fileToCopyおよびinit.copyAndProcessの方法を用いる限り、初期化テンプレートの実行時に、root/のサブディレクトリにあるファイルはいずれも現在のディレクトリにコピーされる.
    コピーされたすべてのファイルはテンプレート処理され、{% %}のプロパティが設定場合を除き、propsのデータが収集され、再処理されることに注意する.jquery templateの例を参照してください.

    Renaming or excluding template fileテンプレートファイルの名前変更または除外

    noProgressは、rename.json~sourcepathの名前変更マッピングを記述する.destpathは、sourcepathのディレクトリに対するコピーが必要なファイルパスである必要があるが、root/は、ターゲットパスを記述するためにdestpathテンプレートを含むことができる.{% %}destpathに指定すると、そのファイルはコピーされず、同様にfalseもglobモードをサポートする.

    Specifying default prompt answersデフォルトのプロンプトの答えを指定


    初期化プロンプトのたびに、ハードコーディングのデフォルト値が表示されるか、現在の環境を表示してデフォルト値を決定しようとします.特定のプロンプトのデフォルト値を上書きする場合は、srcpath(windowsでは~/.grunt-init/defaults.json)のファイルを変更できます.
    例えば、私の%USERPROFILE%\.grunt-init\defaults.jsonはこのように見えます.デフォルトの名前より少し異なる名前を使い、私のemailアドレスを排除し、作者urlを自動的に指定したいからです.
    {
    
      "author_name": "\"Cowboy\" Ben Alman",
    
      "author_email": "none",
    
      "author_url": "http://benalman.com/"
    
    }
    
    

    Defining an init template定義initテンプレート


    exports.description


    テンプレートの概要説明は、利用可能なテンプレートの名前の後に、ユーザがdefaults.jsonまたはgrunt initを実行するときに表示される.
    exports.description = descriptionString;
    
    

    exports.notes


    このオプションを指定すると、このオプションの拡張説明には、任意のプロンプトの後に表示されます.これを使用して、ユーザーに命名慣例を説明することができます.どのオプションが選択可能なのか、待たなければならないのかを説明することができます.

    exports.warnOn


    このオプション(ただし、推奨設定)のワイルドカードモードまたはモード配列のマッチングが成功すると、Gruntは終了し、grunt-initのオプションで操作を継続できることをユーザに提示する.これは、テンプレートの初期化時に既存の同名ファイルを上書きする場合に有用である.
    exports.warnOn = 'Gruntfile.js';        // Warn on a Gruntfile.js file.
    
    exports.warnOn = '*.js';            // Warn on any .js file.
    
    exports.warnOn = '*';               // Warn on any non-dotfile or non-dotdir.
    
    exports.warnOn = '.*';              // Warn on any dotfile or dotdir.
    
    exports.warnOn = '{.*,*}';          // Warn on any file or dir (dot or non-dot).
    
    exports.warnOn = '!*/**';           // Warn on any file (ignoring dirs).
    
    exports.warnOn = '*.{png,gif,jpg}'; // Warn on any image file.
    
    
    
    // This is another way of writing the last example.
    
    exports.warnOn = ['*.png', '*.gif', '*.jpg'];
    
    

    exports.template

    --forceの属性はこの関数の外で定義され、実際の初期化コードはすべて中に入る.3つのパラメータはこの関数に伝わり、exportsパラメータはgruntオブジェクトの参照であり、すべてのgruntのメソッドとライブラリを含む.gruntパラメータはinitテンプレートの方法と属性を含むオブジェクトである.initのパラメータは、初期化テンプレートが完了する後に呼び出す必要がある関数である.
    exports.template = function(grunt, init, done) {
    
      // See the "Inside an init template" section.
    
      //     ,   “        ”
    
    };
    
    

    Inside an init template initテンプレートの内部


    init.addLicenseFiles


    filesオブジェクトに適切なライセンスを追加
    var files = {};
    
    var licenses = ['MIT'];
    
    init.addLicenseFiles(files, licenses);
    
    // files === {'LICENSE-MIT': 'licenses/LICENSE-MIT'}
    
    

    init.availableLicenses


    使用可能なライセンスの配列を返します
    var licenses = init.availableLicenses();
    
    // licenses === [ 'Apache-2.0', 'GPL-2.0', 'MIT', 'MPL-2.0' ]
    
    

    init.copy


    ファイルをコピーすると、相対的または絶対的なソースファイルパスと、オプションの相対的なターゲットパスと、オプションのコールバックでファイルの内容を指定できます.
    init.copy(srcpath[, destpath], options)
    
    

    init.copyAndProcess


    転送されたすべてのファイルを反復し、ソースファイルをターゲットパスにコピーし、ファイルの内容を処理します.
    init.copyAndProcess(files, props[, options])
    
    

    init.defaults

    doneからのユーザ指定のデフォルト初期値
    init.defaults
    
    

    init.destpath


    ターゲットアドレスの絶対パスを返す
    init.destpath()
    
    

    init.expand


    grunt.に等しいfile.expand
    与えられたワイルドカードに一致するすべてのファイルまたはディレクトリである、重み付けされた配列を返します.この方法は、カンマのセミコロンのワイルドカードまたはワイルドカードからなる配列を同様に受け入れる.モード開始!を選択すると、返される配列が除外されます.パターンは与えられた数順で処理するので(複数のワイルドカードを使用する場合)含むと除外の順序が重要である.
    init.expand([options, ] patterns)
    
    

    init.filesToCopy


    相対パスと絶対パスにコピーする、名前を変更(または省略)してrenameに一致するオブジェクトを返す.json(存在する場合)ルールのファイル.
    var files = init.filesToCopy(props);
    
    /* files === { '.gitignore': 'template/root/.gitignore',
    
     '.jshintrc': 'template/root/.jshintrc',
    
     'Gruntfile.js': 'template/root/Gruntfile.js',
    
     'README.md': 'template/root/README.md',
    
     'test/test_test.js': 'template/root/test/name_test.js' } */
    
    

    init.getFile


    独立したタスクのファイルパスを取得
    init.getFile(filepath[, ...])
    
    

    init.getTemplates


    使用可能なすべてのテンプレートを含むオブジェクトを返します.
    init.getTemplates()
    
    

    init.initSearchDirs


    ディレクトリを初期化し、使用可能なテンプレートを検索します.defaults.jsonはテンプレートのアドレスである.同様にtemplateとgrunt-initの初期化タスクコアを含む.△この段落は翻訳できません.
    init.initSearchDirs([filename])
    
    

    init.process


    ヒントを開始するプロセスを開始します.
    init.process(options, prompts, done)
    
    
    init.process({}, [
    
      // Prompt for these values
    
      init.prompt('name'),
    
      init.prompt('description'),
    
      init.prompt('version')
    
    ], function(err, props) {
    
      // All finished, do something with the properties
    
    });
    
    

    init.prompt


    ユーザーにデフォルト値のヒントを表示
    init.prompt(name[, default])
    
    

    init.prompts


    すべてのプロンプトのオブジェクトを返します
    var prompts = init.prompts;
    
    

    init.readDefaults


    taskファイル(存在する場合)からのデフォルトJSONを読み込み、データオブジェクトにマージします.
    init.readDefaults(filepath[, ...])
    
    

    init.renames


    テンプレートの名前変更規則
    var renames = init.renames;
    
    // renames === { 'test/name_test.js': 'test/{%= name %}_test.js' }
    
    

    init.searchDirs


    テンプレートの検索パス配列を返します
    var dirs = init.searchDirs;
    
    /* dirs === [ '/Users/shama/.grunt-init',
    
     '/usr/local/lib/node_modules/grunt-init/templates' ] */
    
    

    init.srcpath


    ファイル名に基づいて初期化テンプレートパスを検索し、絶対パスを返します.
    init.srcpath(filepath[, ...])
    
    

    init.userDir


    ユーザーのテンプレートの絶対パスを返します
    var dir = init.userDir();
    
    // dir === '/Users/shama/.grunt-init'
    
    

    init.writePackageJSON


    パッケージを保存します.jsonはターゲットディレクトリに.callbackコールバックは、追加/削除などの操作を処理するために使用することができる.
    init.writePackageJSON(filename, props[, callback])
    
    

    Built-in prompts組み込みのヒント


    author_email

    ~/.grunt-init/で使われている作者email.ユーザーのgit構成を探してデフォルト値を指定します

    author_name

    package.jsonと著作権声明で使用するユーザーのフルネーム.ユーザーのgit構成のデフォルト値が見つかります

    author_url

    package.jsonで使用されている作者のサイトの公開url

    bin


    プロジェクトルートディレクトリの相対パスがcliを指すスクリプト

    bugs


    プロジェクトの問題追跡url.デフォルトではgithubのissue trackerが使用されます.

    description

    package.jsonおよびREADMEファイルで使用されるプロジェクトの説明

    grunt_version


    プロジェクトに必要なGruntの有効バージョン範囲.

    homepage


    プロジェクトのホームページデフォルトではgithubウェアハウスアドレスが使用されます

    jquery_version


    jQueryのアイテムの場合、この値は必要なjQueryバージョンを記述するために使用されます.有効な構文のバージョン範囲記述子である必要があります.

    licenses


    プロジェクトのオープンソースライセンス複数のライセンスをスペースで区切る.内装の許可はpackage.json,MIT,'GPL-2.0 MPL-2.0 Apache-2.0 , MIT`.カスタムライセンスを追加するにはinitを使用します.addLicenseFiles.

    main


    プロジェクトのメインエントリは、デフォルトでは. ディレクトリで使用するプロジェクト名のファイルを使用します.

    name


    プロジェクトの名前プロジェクトテンプレートで大量に使用されます.デフォルトでは、現在の作業ディレクトリの名前が使用されます.

    node_version


    プロジェクトに必要なnodejsのバージョン.有効な構文のバージョン範囲記述子である必要があります.

    npm_test


    プロジェクトテストのコマンドを実行します.デフォルトではlibが使用する.

    repository


    プロジェクトのgit倉庫デフォルトではgithubのurlが推測されます

    title


    読みやすい項目名.デフォルトでは、実際のプロジェクト名が使用されます.

    version


    プロジェクトのバージョンデフォルトでは、有効な構文バージョンgruntが使用されます.