动机
一般的框架都有脚手架工具,但是并不会让所有人满意。
简介
cookiecutter
是一个Python实现的命令行工具,可以通过项目模版来构建项目。
它的特性包括:
- 跨平台支持
- 支持python2.7+/python3.4+/pypy (不过你不懂python也可以使用)
- 项目模版可以是任何变成语言的项目,或者支持任何的标记格式
简单的命令行使用方法
比如,可以直接使用一个github repo来作为项目模版:
$ cookiecutter gh:audreyr/cookiecutter-pypackage
也可以使用本地的项目模版
$ cookiecutter cookiecutter-pypackage/
或者在python代码中运行
from cookiecutter.main import cookiecutter
# Create project from the cookiecutter-pypackage/ template
cookiecutter('cookiecutter-pypackage/')
# Create project from the cookiecutter-pypackage.git repo template
cookiecutter('https://github.com/audreyr/cookiecutter-pypackage.git')
目录名和文件名都可以使用模版占位符
{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}.py
支持无限制层数的目录嵌套
模版使用jinja2来支持
你的模版变量可以定义在json文件中, cookiecutter.json
{
"full_name": "Audrey Roy",
"email": "[email protected]",
"project_name": "Complexity",
"repo_name": "complexity",
"project_short_description": "Refreshingly simple static site generator.",
"release_date": "2013-07-10",
"year": "2013",
"version": "0.1.1"
}
会提示让用户选择输入变量:
- 提示输入的字段就是
cookiecutter.json
的key - 默认值就是
cookiecutter.json
的值 - 提示会安装顺序输出
- 提示输入的字段就是
可以在命令运行前后的钩子上挂上你自己的脚本
个人评分
实用性 | ⭐️⭐️⭐️⭐️⭐️ |
易用性 | ⭐️⭐️⭐️⭐️ |
有趣性 | ⭐️⭐️⭐️⭐️ |