1

cookiecutter.jsonテンプレートのデフォルトのコンテキストを定義するファイルがあります。コマンドフラグを介して、次のように指定したいと思います。

cookiecutter --no-input --context my-context.json <cookiecutter-template>

入力プロンプトで手動でデータを入力しなくても、同じテンプレートを使用してさまざまなプロジェクトを生成できます。これを達成するための回避策があります。

  1. テンプレート リポジトリをローカルに複製する
  2. cookiecutter.jsonテンプレート リポジトリの を変更します
  3. github クローンではなく、ローカル クローンをテンプレートとして指定します。

これは、リポジトリを変更する必要があり、コンテキスト ファイルを個別に保存できず、同じテンプレートを使用して異なるプロジェクトを簡単に作成できないため、理想的とは言えません。

コマンドラインで、cookiecutter にコンテキストを指定する方法はありますか?

4

1 に答える 1

0

いいえ(正確ではありません)

私が見る限り、あなたが望む正確な方法でコマンドラインフラグを使用する現在の方法はありません。

ただし、このまったく同じ問題に関する私の調査に基づいて、これを解決するには2つの主な方法があり、正確な状況に応じてそれぞれ多かれ少なかれ適切です。

標準/個人のコンテキスト値

複数のプロジェクトで使用したい標準の、通常は個人的なコンテキスト値がある場合は、ユーザー固有の構成を追加するオプションがあります。

.cookiecutterrcホームディレクトリのファイルにデフォルトのコンテキスト設定を指定できるようです。(現在のドキュメントはここにあります)。これは、電子メール アドレス、氏名、github アカウント名など、かなり静的なものに最も適切に使用されます。

構成ファイルの形式は yaml で、構造の例は次のようになります。

default_context:
    full_name: "Gavin Cooper"
    email: "xxxxxx@xxxxx.com"
    github_username: "gjcooper"

これは、ほとんどの cookiecutter パッケージで標準的な名前が付けられているなどのフィールドに依存していると思います。

プロジェクト固有のコンテキスト値

このソリューションは、プロジェクト固有の値 (つまり app_name) を cookiecutter json 形式で生成し、ユーザー入力なしでプロジェクト ディレクトリ構造を自動的に生成するプロジェクト管理ソフトウェアまたはその他のスクリプトがある場合に使用します。

これには、cookiecutter 内部にフックするための非常に短い python スクリプトを作成する必要がありますが、使い方は簡単です。

from cookiecutter.main import cookiecutter
import json

with open('project_context.json') as jfile:
    mycontext = json.load(jfile)

cookiecutter('<local or remote cookiecutter template file>',
             extra_context=mycontext,
             no_input=True)

私が確認できるこのソリューションは、私にとってはうまくいきました。

于 2016-12-14T05:38:26.307 に答える