Comparing Copier to other project generatorsΒΆ
The subject of project scaffolding has been around for some time, and Copier is just a new one in a list of long established good projects. Here's a simple comparison. If you find something wrong, please open a PR and fix it! We don't want to be biased, but it's easy that we tend to be:
Feature | Copier | Cookiecutter | Yeoman |
---|---|---|---|
Can template file names | Yes | Yes | Yes |
Configuration | Single or multiple YAML files | Single JSON file | JS module |
Migrations | Yes | No | No |
Programmed in | Python | Python | NodeJS |
Requires handwriting JSON | No | Yes | Yes |
Requires installing templates separately | No | No | Yes |
Requires programming | No | No | Yes, JS |
Requires templates to have a suffix | Yes3 | No, not configurable | You choose |
Task hooks | Yes | Yes | Yes |
Template in a subfolder | Not required, but you choose | Yes, required | Yes, required |
Template package format | Git repo2, Git bundle, folder | Git or Mercurial repo, Zip file | NPM package |
Template updates | Yes4 | No | No |
Templating engine | Jinja1 | Jinja | EJS |
1 Copier configures Jinja to use [[ brackets ]]
instead of
{{ curly braces }}
by default, but that can be changed per template if needed.
2 Git repo is recommended to be able to use advanced features such as template tagging and smart updates.
3 A suffix is required. Defaults to .tmpl
, but can be configured.
4 Only for git templates, because Copier uses git tags to obtain available versions and extract smart diffs between them.