Copierではしりぬける
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