justの入れ方:justfileを書いて最初のレシピを実行する
justを入れ、justfileを書き、justで最初のレシピを通す。
Makefile の文法でつまずき、長い npm script は読みにくい。just は Casey のコマンドランナー。リポジトリ根に justfile を置き、短いレシピ名で本機コマンドを呼ぶ。
just.systems と github.com/casey/just に沿い just を入れて使う。バイナリを入れ、justfile を書き、just で最初のレシピを通す。開発者向け手順であり、ブレインストーム説明ではない。
先にランナー、次にレシピ
just は Make / npm / cargo の置き換えではない。既にあるツールを呼ぶだけ。macOS は Homebrew、Rust があれば cargo、Windows は Scoop / Chocolatey / WinGet。正本は just.systems の Installation と README。
| 方法 | 必要なもの | 向くとき |
|---|---|---|
| Homebrew | macOS / Linuxbrew | brew install just |
| cargo | Rust toolchain | cargo install just |
| Scoop / Chocolatey / WinGet | Windows | zip を手で展開したくない |
最初のレシピまで五手順
- 1
just を入れる
macOS:
brew install just。またはcargo install just。just --versionで確認。コマンドは just.systems を正とする。 - 2
根に justfile を作る
リポジトリ根で
justfile(またはJustfile)。just はカレントから上へ探す。package.jsonやCargo.tomlと同じ階層がよい。 - 3
デフォルトレシピを書く
引数なしの
justは先頭のレシピ、または[default]。行頭@でエコーを隠す。コマンドは名前の下にインデント。 - 4
一覧して実行
just --listで名前とコメント。justがデフォルト、just testが test。引数はgreet name:→just greet Ada。 - 5
依存と変数
release: testは先に test。変数はname := "value"と{{name}}。長い脚本は shebang レシピ(マニュアル Recipes)。
brew install just
# cargo install just
# scoop install just
just --version
just --list
just
just greet Ada最小の justfile
# justfile — first recipes
default:
@echo "hello from just"
test:
@echo "run tests here"
# pass an argument
greet name:
@echo "hi {{name}}"
レシピとインデント
名前のあとコロン。下のコマンドは空白か Tab で揃える(ファイル内は一方)。# は just --list に出る。
依存と引数
コロンのあとが依存。位置引数は名前の後ろ。失敗したら空白と引用符を確認。
Make / npm との差
just は既定でタイムスタンプによるスキップをしない。コマンドランナー。npm scripts はレシピから呼べる。
よくある穴
justfile がない:ディレクトリ違いやファイル名の誤り。動かない:Tab と空白の混在、インデント漏れ。command not found:PATH 未更新。Windows は公式の改行とシェルの節。
レシピのあと短いスケッチが要るなら wbstorm。部屋の作成と参加、ホワイトボードの基礎、lazygit の入れ方。
Make の置き換えか。
違う。Make はビルドシステムで時刻により飛ばすことが多い。just は毎回実行するランナー。共存できる。
Homebrew 必須か。
必須ではない。just.systems に Homebrew、cargo、各マネージャがある。手元の経路でよい。
ファイル名は固定か。
justfile / Justfile が一般的。just --justfile path も可。チームでは名前を揃える。
wbstorm の機能か。
違う。本稿は casey/just だけ。wbstorm はブラウザのブレインストーム部屋。