justの入れ方:justfileを書いて最初のレシピを実行する

justを入れ、justfileを書き、justで最初のレシピを通す。

Makefile の文法でつまずき、長い npm script は読みにくい。just は Casey のコマンドランナー。リポジトリ根に justfile を置き、短いレシピ名で本機コマンドを呼ぶ。

just.systems と github.com/casey/just に沿い just を入れて使う。バイナリを入れ、justfile を書き、just で最初のレシピを通す。開発者向け手順であり、ブレインストーム説明ではない。

just を入れるjustfile を書く最初のレシピ

先にランナー、次にレシピ

just は Make / npm / cargo の置き換えではない。既にあるツールを呼ぶだけ。macOS は Homebrew、Rust があれば cargo、Windows は Scoop / Chocolatey / WinGet。正本は just.systems の Installation と README。

just
コマンドランナー
justfile
プロジェクトのレシピ
just --list
一覧
方法必要なもの向くとき
HomebrewmacOS / Linuxbrewbrew install just
cargoRust toolchaincargo install just
Scoop / Chocolatey / WinGetWindowszip を手で展開したくない

最初のレシピまで五手順

  1. 1

    just を入れる

    macOS:brew install just。または cargo install just。just --version で確認。コマンドは just.systems を正とする。

  2. 2

    根に justfile を作る

    リポジトリ根で justfile(または Justfile)。just はカレントから上へ探す。package.json や Cargo.toml と同じ階層がよい。

  3. 3

    デフォルトレシピを書く

    引数なしの just は先頭のレシピ、または [default]。行頭 @ でエコーを隠す。コマンドは名前の下にインデント。

  4. 4

    一覧して実行

    just --list で名前とコメント。just がデフォルト、just test が test。引数は greet name: → just greet Ada。

  5. 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}}"
01

レシピとインデント

名前のあとコロン。下のコマンドは空白か Tab で揃える(ファイル内は一方)。# は just --list に出る。

02

依存と引数

コロンのあとが依存。位置引数は名前の後ろ。失敗したら空白と引用符を確認。

03

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 はブラウザのブレインストーム部屋。

無料で会議を開始