ビルドやテストのコマンドをmise.tomlにまとめて管理したい
プロジェクトごとに使うnpm run buildやmake testのようなコマンドを、READMEやシェルスクリプトへ散らばらせずmise.tomlにまとめて定義しておきたい場合がある。miseはmise.tomlにタスクを定義し、mise runで実行できるタスクランナー機能を備えている。
mise run の基本
mise.tomlに[tasks.<name>]としてタスクを定義する。
[tasks.hello]
run = "echo hello"
mise run <タスク名>で実行する。
$ mise run hello
[hello] $ echo hello
hello
タスク名だけで実行する
タスク名がmiseの他のサブコマンドと衝突しない場合、mise runを省略してタスク名だけでも実行できる。
$ mise hello
[hello] $ echo hello
hello
タスクの一覧を確認する
mise tasksで、mise.tomlに定義されているタスクの一覧を確認できる。descriptionを設定しておくと、一覧に説明も表示される。
[tasks.greet]
description = "挨拶を表示する"
run = "echo hello"
[tasks.build]
run = "echo building..."
$ mise tasks
build
greet 挨拶を表示する
タスク間の依存関係を定義する
dependsを使うと、あるタスクを実行する前に別のタスクを先に実行させられる。
[tasks.build]
depends = ["greet"]
run = "echo building..."
mise run buildを実行すると、build本体より先にgreetが実行される。
$ mise run build
[greet] $ echo hello
hello
[build] $ echo building...
building...
Finished in 26.1ms
ビルド前に依存パッケージのインストールを済ませておく、といった順序が決まっている処理をタスク間の依存関係として表現できる。
\第一線のプログラマーの行動原理を学べる!/
