🪲

Copierではしりぬける

2024/09/20に公開

Copierでテンプレートを作る方法を紹介していきます。

意外と簡単だったので、その手順をゆるくまとめていきます。やる気なくても、これ読んでやれば多分できるはずです。

Step 1: Copierをインストールする

まずはCopierをインストールしないと話が始まらないので、インストールします。
インストールは普通にpipでできます。pipがなかったらもうその時点で気合い入れ直して、Pythonとかインストールしてから進んでください。

pipx install copier

pipxがわからない方はこの記事を参考にしてください

Step 2: テンプレートを作るディレクトリを用意する

次に、テンプレートを作るためのディレクトリを用意します。
ここはただフォルダを作るだけなんで、別に何も難しくないです。好きな名前のフォルダを作りましょう。

mkdir my-awesome-template
cd my-awesome-template

Step 3: テンプレートの内容を作る

このディレクトリに、自分がテンプレートとして使いたいプロジェクト構成をどんどん入れていきます。普通にディレクトリとファイルを作っていくだけです。例えば、README.mdとか、main.pyとか、好きに作っちゃってください。

でも、Copierはただのコピー機じゃないので、変数を使ってプロジェクトを動的に生成できるようにできます。たとえば、{{ project_name }}みたいなテンプレート変数を使って、あとで好きな名前を指定できるようにしたりします。

# README.md

# Welcome to {{ project_name }}

This project is generated using Copier.

プロジェクト名とか、ライセンスとかを後で聞かれるようにしたい場合は、こんな感じでテンプレート化していけばOKです。

Step 4: copier.ymlを作成する

次に、copier.ymlっていう設定ファイルをプロジェクトルートに作ります。このファイルで、テンプレートの設定や変数を定義します。ここがちょっとやる気出すところかもしれないけど、まぁそんなに難しくないです。

例としてはこんな感じです。

# copier.yml

project_name:
  type: str
  help: "Enter the project name"
  default: "MyCoolProject"

license:
  type: str
  help: "Choose a license"
  default: "MIT"
  choices:
    - MIT
    - Apache-2.0
    - GPL-3.0

これで、プロジェクト名とライセンスを指定できるテンプレートが完成します

Step 5: テンプレートをテストする

テンプレートを作ったら、実際に動くかテストしてみましょう。テンプレートのテストは、Copierコマンドを使ってやります。

Copy code
copier copy ./ path/to/destination

上のコマンドを実行すると、Copierがcopier.ymlで設定した質問をしてくるので、適当に答えていきます。プロジェクト名とかライセンスを指定して、あとはCopierがいい感じにファイルを生成してくれます。

Step 6: テンプレートをシェアする(やる気があれば)

テンプレートが完成したら、あとはGitHubとかに上げて他の人にもシェアできます。テンプレートが便利だと思ったら、気軽に公開しちゃいましょう。でもまぁ、面倒なら自分だけで使ってもいいですよね。

Copy code
git init
git add .
git commit -m "My awesome Copier template"
git remote add origin https://github.com/yourusername/my-awesome-template.git
git push -u origin main

これで公開完了。あとは使う人の自由です。

比較記事 : https://zenn.dev/killy/articles/fc8e0803a295d5
導入記事 : https://zenn.dev/killy/articles/d3f43963848947
追加記事 : https://zenn.dev/killy/articles/391e3e3f33510c

Discussion