关于 justfile
围绕 just 命令运行器的 skill,介绍如何用 justfile 定义项目命令、变量、设置和条件逻辑。适合需要组织和运行项目专属命令的开发者。
主要功能
- 01定义默认及具名 recipe
- 02设置变量与环境变量
- 03配置 shell 和 dotenv
- 04按操作系统与架构分支
- 05查看、试运行和格式化命令
适用场景
- 01为项目封装常用构建命令
- 02创建带参数的开发任务
- 03按系统或架构选择安装命令
- 04在 GitHub Actions 中运行 just
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mizchi/ skills --skill justfile安装后在 Claude Code 中输入/justfile确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.md.claude-plugin/manifest.jsonassets/gh_action_example.yamljustfile详细介绍
justfile 技能
just 是一个用于运行项目专属命令的命令运行器。它类似 Make,但更简单。
基本语法
# Default recipe (runs when just is called without arguments)
default:
@echo "Available: just --list"
# Basic recipe
build:
cargo build --release
# Dependencies
test: build
cargo test
# Arguments
greet name:
echo "Hello, {{name}}!"
# Default arguments
serve port="8080":
python -m http.server {{port}}
# Variadic arguments
run *args:
cargo run -- {{args}}
变量
# String
version := "1.0.0"
# Shell command result
git_hash := `git rev-parse --short HEAD`
# Environment variable with default
home := env_var_or_default("HOME", "/tmp")
# Usage
info:
echo "Version: {{version}}, Hash: {{git_hash}}"
设置
# Shell
set shell := ["bash", "-cu"]
# Load .env
set dotenv-load
# Continue on error
set ignore-errors
# Suppress command echo
set quiet
# Working directory
set working-directory := "subdir"
条件语句
# OS detection
install:
{{if os() == "macos" { "brew install foo" } else { "apt install foo" }}}
# Architecture detection
build:
{{if arch() == "aarch64" { "make arm" } else { "make x86" }}}
内置函数
| 函数 | 描述 |
|---|---|
os() | 操作系统名称(linux、macos、windows) |
arch() | 架构(x86_64、aarch64) |
env_var("NAME") | 获取环境变量 |
justfile_directory() | 包含 justfile 的目录 |
invocation_directory() | 调用 just 的目录 |
常用命令
just # Run default recipe
just recipe # Run specific recipe
just recipe arg # Run with arguments
just --list # List recipes
just --dry-run # Show without running
just --choose # Select with fzf
just --fmt # Format justfile
GitHub Actions
使用 extractions/setup-just@v4。完整示例请参阅 assets/gh_action_example.yaml。
steps:
- uses: actions/checkout@v7
- uses: extractions/setup-just@v4
# with:
# just-version: '1.58.0' # Optional pin (latest as of 2026-09)
- run: just build
- run: just test
实用示例
set dotenv-load
set shell := ["bash", "-cu"]
default:
@just --list
# Dev server
dev:
npm run dev
# Build
build:
npm run build
# Test
test *args:
npm test {{args}}
# Lint + format
check:
npm run lint
npm run format:check
# CI (called from GitHub Actions)
ci: check build test
# Release
release version:
git tag -a v{{version}} -m "Release v{{version}}"
git push origin v{{version}}
# Cleanup
clean:
rm -rf dist node_modules
参考资料
评论
支持 Markdown