6

このテンプレートを使用して、cookiecutter を使用してトルネード プロジェクトを作成しています (いくつかのバグがあるため、そのままでは使用できない可能性があります)。解決方法がわからない問題に遭遇しました:

jinja2.exceptions.TemplateSyntaxError: unexpected char '\\' at 124272
  File "./{{cookiecutter.project_slug}}/static/swagger/lib/jsoneditor.min.js", line 10

よくわかりませんが、cookiecutterをジンジャ処理しようとしている印象がありますがjsoneditor.min.js、これは発生しないはずです。そのファイルの「テンプレート」は によって処理されることになっていないためcookiecutter、たまたま同じエスケープが含まれている使用しているキャラクターJinja

cookiecutter特定のディレクトリ内のファイルを処理しないように指示することはできますか? これはおそらくテンプレートを適切に設定することの問題ですが、cookiecutterこれをどのように指定できるかはわかりません。

4

2 に答える 2

7

デフォルトでは、cookiecutter はすべてのファイルを jinja テンプレートとして処理しようとします。これは、jinja テンプレートのように見えるものがある場合に誤った結果を生成しますが、文字どおりに解釈することしか想定されていません。cookiecutter 1.1 から、cookiecutter に一部のファイルのみを jinja テンプレート ( documentation ) として解釈せずにコピーするように指示できます。

_copy_without_renderこれを行うには、cookiecutter 構成ファイル ( ) にキーを追加する必要がありますcookiecutter.json。正規表現のリストを取ります。ファイル名が正規表現に一致する場合、それはコピーされ、jinja テンプレートとして処理されません。

{
    "project_slug": "sample",
    "_copy_without_render": [
        "*.js",
        "not_rendered_dir/*",
        "rendered_dir/not_rendered_file.ini"
    ]
}

これは、javascript ファイル ( で終わるファイル.js)、にnot_rendered_dirあり. それらはコピーされるだけです。not_rendered_file.inirendered_dir

于 2016-08-25T17:19:16.933 に答える