mcpField
J
justfile

justfile

github.com/mizchi开发41658 次安装1 周前更新
代码仓库

关于 justfile

围绕 just 命令运行器的 skill,介绍如何用 justfile 定义项目命令、变量、设置和条件逻辑。适合需要组织和运行项目专属命令的开发者。

主要功能

  1. 01定义默认及具名 recipe
  2. 02设置变量与环境变量
  3. 03配置 shell 和 dotenv
  4. 04按操作系统与架构分支
  5. 05查看、试运行和格式化命令

适用场景

  1. 01为项目封装常用构建命令
  2. 02创建带参数的开发任务
  3. 03按系统或架构选择安装命令
  4. 04在 GitHub Actions 中运行 just

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mizchi/skills --skill justfile

安装后在 Claude Code 中输入/justfile确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
.claude-plugin/
manifest.json
assets/
gh_action_example.yaml
justfile

详细介绍

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