重复命令太多5 分钟用 just 把常用操作打包成 justfile 任务脚本【免费下载链接】just Just a command runner项目地址: https://gitcode.com/GitHub_Trending/ju/just每次部署前都要翻聊天记录找命令测试参数的顺序总是记不清just 是一个轻量命令运行器思路很直白把项目里反复要敲的命令写进 justfile 这个任务脚本文件之后只敲 just 加任务名整条命令序列就会按顺序跑起来。它的语法接近 Makefile但报错信息清晰得多参数、环境变量加载这些能力也都有。什么项目适合用 just判断标准只有一条同一条命令你一个月敲了三次以上。典型场景有三类前端构建build、preview、lint 一套组合拳参数还经常变Docker 部署build、tag、push 三步走镜像名和仓库地址重复出现数据脚本跑爬虫、清洗、入库命令里嵌着日期和路径好处很实际新人不用问本地怎么起just --list就能看到全部任务命令集中在一个文件里改一次全员同步任务之间还能声明依赖、传递参数比散落在 README 里的命令片段可控得多。3 分钟装好 just写出第一个 justfile安装只有一行装完在当前目录新建一个名为 justfile 的文件就能开工仓库里还放了一份 安装脚本cargo install just # 安装命令运行器 just --list # 查看 justfile 里定义的所有任务 just build # 执行名为 build 的任务一个前端项目最小可用的 justfile 长这样# 前端项目最小可用 justfile build: npm run build test: npm test # 任务名后面写依赖先跑 build再执行下面的命令 preview: build echo 构建完成启动预览 # 表示不重复回显这行命令 npm run previewjust preview会先执行依赖的 build再跑 preview 自己的两条命令。这个依赖写在冒号后面的写法是后面组织复杂任务链的核心手段。just 变量、参数与 dotenv 怎么写变量与依赖把重复收敛到文件顶部重复出现的脚本名、镜像仓库地址先提成变量任务里用{{变量名}}引用反引号包裹的 shell 命令执行结果可以直接当变量值APP : web-console GIT_TAG : git describe --tags # 执行 git 命令取版本号 lint: npm run lint # 依赖链lint 过了才 buildbuild 过了才打镜像 build: lint npm run build release: build docker build -t {{APP}}:{{GIT_TAG}} . docker tag {{APP}}:{{GIT_TAG}} registry.example.io/{{APP}}:{{GIT_TAG}}参数与 dotenv让任务吃配置任务名后面可以直接跟参数支持默认值*开头的参数能吞掉命令行剩余的输入# 不传 port 时默认 3000 run port3000: npm run dev -- --port {{port}} # *files 收集命令行剩余的所有参数 watch *files: npm run watch -- {{files}} # 自动加载当前目录的 .env 文件 set dotenv-load # export 让变量进入子进程的环境变量 export NODE_ENV : production.env就是普通的KEYvalue纯文本放在项目根目录配上一行set dotenv-load即可。密钥、环境地址这类不该进代码库的值就放这里。一个可直接改用的 Node 项目 justfile 示例把前面几节的写法拼起来就是一个前端加 Docker 项目的完整形态# Node Docker 项目 justfile 示例 APP : web-console export REGISTRY : registry.example.io set dotenv-load alias b : build # 短别名just b 等价于 just build alias t : test dev: npm run dev test: npm test build: test docker build -t {{APP}}:latest . docker tag {{APP}}:latest {{REGISTRY}}/{{APP}}:latest docker push {{REGISTRY}}/{{APP}}:latest平时敲just b构建、just t测试发布走just build一条龙。别名和依赖让高频操作都缩到一两个字母。 新手最容易踩的 6 个 justfile 坑插值用双花括号。写{{NAME}}写成$NAME会被原样传给 shell变量不会被替换。每行命令独立执行不继承上一行的状态。需要set -e或多步串联时把任务首行写成#!/usr/bin/env bash整个任务就变成一段完整脚本。和-别混。是静默回显-是出错也不中断两个符号作用完全不同。跨平台靠os()。Windows 下用set windows-shell : [powershell.exe, -c]指定 shell条件分支写if os() windows { ... } else { ... }跨平台示例 有现成写法。just 会向上找 justfile。在子目录执行时它从当前目录一路向上找多 justfile 的项目用-f指定文件。调试三板斧出问题时按这个顺序查just --dry-run release # 只打印将执行的命令不真正运行 just --dump # 输出解析后的 justfile 内容 just -e build # 失败时保留出错现场便于检查把团队里最常被问到的那三条命令写进 justfile就是开始。更多细节可以看 官方手册附中文版写法灵感去翻 examples/ 目录下的示例shell 补全脚本在 completions/ 里。【免费下载链接】just Just a command runner项目地址: https://gitcode.com/GitHub_Trending/ju/just创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考