【OSS】just タスクランナー入門2026 — Makefile からの卒業

「Makefileから卒業しよう!just タスクランナー入門ガイド 2026」の文字を配したアイキャッチ画像

just 1.58.0でタスク一覧の表示と実行を確認しました。Makefileのタブ強制や.PHONYから解放されるRust製タスクランナーの導入手順と、Justfileの書き方を実例付きでまとめます。

目次

この記事が解決する悩み

  • Makefileのタブと依存関係の書き方にうんざりしてきた
  • タスクランナーの乗り換え先を探している

対象読者: 開発タスクをMakefileで管理している人
前提知識: シェルコマンドが読めること

結論

プロジェクトのルートに Justfile というファイルを作ってレシピを書くだけで、just test や just deploy のようにコマンドを呼び出せます。

test:
    echo "Running tests..."
    cargo test

シェルワンライナーをそのまま書くだけです。

justとは?Makeとの違い

just はRust製のコマンドランナーです。Makefileと同じような感覚で使えますが、ビルドの依存関係解決は行いません。

特徴 Make just
目的 ビルドシステム コマンドランナー
.PHONY 必要 不要
タブ強制 あり スペースでもOK
引数 環境変数経由 自然に渡せる
シェル /bin/sh固定 shebangで変更可
Windows対応 WSL必須 ネイティブバイナリ

Makeはビルドツールとして設計されています。ところが最近では npm run build でビルド本体は各言語のツールチェーンに任せるのが普通ですよね。そうなるとMakeに求められるのはコマンドのラッパーだけで、.PHONYを書く儀式が手間になります。

インストール方法

各環境に合わせて選べます。

macOS

brew install just

Windows

scoop install just
winget install --id Casey.Just

Linux

sudo apt-get install just
sudo dnf install just
sudo apk add just

cargo from source

cargo install just

基本的な使い方

Justfileの書き方

プロジェクトルートに Justfile を作ります。

test:
    echo "Running tests..."
    cargo test

lint:
    cargo clippy --all-targets -- -D warnings

デフォルトレシピ

[default]
dev:
    just setup
    just build
    echo "Ready!"

引数の受け渡し

greet name:
    echo "Hello, {{name}}!"

build target="debug":
    cargo build --{{target}}

変数

version := "1.0.0"
image := "myapp:" + version

build:
    docker build -t {{image}} .
    echo "Building version {{version}}"

依存関係

setup:
    npm install

build: setup
    npm run build

test: build
    npm test

実践ユースケース

1. Node.js/TypeScriptプロジェクト

node_version := `node --version`

setup:
    npm install
    @echo "Node {{node_version}} ready"

dev:
    npm run dev

lint:
    npm run lint
    npm run typecheck

test:
    npm test

build: lint test
    npm run build

docker-build: build
    docker build -t myapp:latest .

deploy: docker-build
    docker push myapp:latest

clean:
    rm -rf node_modules dist
    @echo "Cleaned up!"

2. Rustプロジェクト

[default]
test-all: fmt clippy test doc

fmt:
    cargo fmt --all -- --check

clippy:
    cargo clippy --all-targets -- -D warnings

test:
    cargo test --all-features

doc:
    cargo doc --no-deps --document-private-items

bench:
    cargo bench

release:
    cargo build --release

clean:
    cargo clean

よくある質問

MakefileからJustfileへの移行は簡単?

かなり簡単です。既存のターゲットをそのままコピーして、タブをスペースに直すくらいで動きます。

justとnpm scriptsの使い分けは?

一つの言語だけで完結しているならnpm scriptsで十分です。複数の言語やツールを扱う場合はjustのほうが一貫性があります。

まとめ

justはコマンドをまとめて管理したい場面にぴったりのツールです。インストールは一発、Justfileの文法は直感的です。

【広告】お名前.comならドメイン取得が格安。

検証環境

OS Windows 11 (build 10.0.26200)
CPU AMD Ryzen 9 PRO 8945HS w/ Radeon 780M Graphics
メモリ 28GB
言語/ツール just 1.58.0(公式のポータブル配布を一時ディレクトリに展開)
使用コマンド just –list / just greet
測定日 2026-09-17

上記の環境で実際に実行して確認した結果です。環境が異なる場合は挙動が変わることがあります。

justfile を実際に読み込ませてタスク一覧の表示とタスク実行を行った結果
justfile を実際に読み込ませてタスク一覧の表示とタスク実行を行った結果

参考

本文の記述は以下の一次情報を確認して書いています。

あわせて読みたい

【広告】このサイトはConoHa WINGで運営しています。いつもありがとう!!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次