十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

justfile 快速上手:8 个小节写完你的第一个任务脚本

justfile 快速上手:8 个小节写完你的第一个任务脚本 justfile 快速上手8 个小节写完你的第一个任务脚本【免费下载链接】just Just a command runner项目地址: https://gitcode.com/GitHub_Trending/ju/justjust 是一款命令运行器把常用命令写进 justfile 变成食谱一句just build就能跑完整条构建流水线。它不像 Makefile 那样做依赖追踪和目标文件管理只跑你告诉它的命令报错时直接指出行号和上下文。本文 3 分钟带你跑通最后落地一个真实项目的完整任务脚本。一、3 分钟跑通安装与第一条 just 命令 安装挑一条顺手的即可brew install just # macOS cargo install just # 其他平台可用发行版包管理器安装 just --version # 能打印版本号就算成功在项目根目录新建一个justfile写三行内容然后在终端敲just 食谱名看到输出即算完成——你已经用上命令运行器了。后面所有内容都是把这个文件写得更顺手的技巧。二、读懂一个最小 justfile食谱、变量和前缀符号justfile 语法里最常出现的是三种行变量定义、食谱定义、注释#开头。先看完整示例APP_NAME : todo-cli # : 是赋值 OUT_DIR : dist / bin # / 是路径拼接 build: # 食谱名下面缩进行是它的命令体 echo 编译 {{APP_NAME}} 到 {{OUT_DIR}} npm run build # 隐藏命令回显只显示输出 -ls dist/ # - 该步出错也继续执行后续命令 default: build # 默认食谱只敲 just 时就先跑 build echo 全部完成要点命令里用{{变量}}做插值名叫default的食谱会在不带参数运行just时自动执行食谱名建议用连字符小写比如build-docs。前缀符号出现频率极高值得背下来前缀作用隐藏命令本身的回显只显示执行输出-该命令失败时忽略错误继续执行后续命令三、参数与依赖让任务跟着场景走食谱名后面写参数名就变成带参食谱命令行里跟在食谱名后面的值会传进去依赖写在冒号后依赖先跑完才轮到本食谱。test targetunit: # 带默认值just test 直接可跑 npm test -- {{target}} deploy: test # 依赖先跑完 test 再执行 deploy echo 发布 {{APP_NAME}} copy *paths: # 变长参数剩余参数全部收进 paths cp {{paths}} dist/一句话要点默认值让just test裸跑可用*变长参数兜住任意剩余参数依赖把小步骤串成一条流水线。四、变量和内置函数一张速查表讲清楚变量取值有三种方式直接赋值、反引号跑命令、条件表达式。反引号里的命令在 justfile 求值阶段就执行输出会成为变量值尾部换行自动去掉条件赋值一行写清 if/elseVERSION : node -p require(./package.json).version # 反引号执行命令 NODE_BIN : if os_family() windows { node.exe } else { node }最常用的内置函数如下都按普通函数调用函数用途示例os()返回操作系统名os()→linuxos_family()返回 OS 族unix/windows适合做跨平台分支env_var(name)读取环境变量env_var(HOME)quote(s)把字符串加引号保证 shell 安全quote(a b)trim(s)去除首尾空白trim( hi )→hifile_name(p)从路径提取文件名file_name(src/a.js)→a.js五、跨平台与 .envWindows 同事也能直接用跨平台任务脚本最常见的痛点是 shellWindows 上没有sh。just 把 shell 配置拆成两份——Unix 用set shellWindows 用set windows-shell食谱本体不用改。.env和export解决配置放哪、密钥怎么传的问题set windows-shell : [powershell.exe, -NoLogo, -Command] set dotenv-load # 自动加载同目录 .env 文件 export APP_TOKEN : demo # export变量同时传给食谱子进程 deploy: echo 部署到 {{DEPLOY_ENV}} # DEPLOY_ENV 来自 .env平台差异最好都收敛到变量赋值里食谱体保持一致食谱体内也能直接写 if/else 执行不同命令但能上提到变量就尽量上提读起来更干净。像DEPLOY_ENVproduction这类值写进.env即可不用每次手敲。六、组织与调试alias、mod 和 --dry-run食谱多了以后有两个组织手段alias b : build # just b 等价于 just build alias t : test mod deploy # 把 deploy/ 子目录的 justfile 作为模块导入模块里的食谱用模块::食谱名前缀调用例如just deploy::release一个大文件就能按目录拆给不同人维护。调试方面just 的语法错误本身就会给出行号和上下文平时最常用的四个命令是命令作用just -n build干跑打印执行计划但不实际运行just -v test更详细的输出verbosejust -l列出所有可用食谱just --evaluate打印所有变量求值后的值想确认某个变量当前的值在对应食谱里加一行echo PORT: {{PORT}}就够了不必背额外参数。七、一个完整项目的 justfile 长这样以上能力串起来是一个 Python 后端服务的 justfile开头是平台条件变量中间是全局设置和别名后面四个食谱各管一段VENV : if os_family() windows { .venv/Scripts } else { .venv/bin } PY : VENV / python set dotenv-load set windows-shell : [powershell.exe, -NoLogo, -Command] alias b : build setup: python3 -m venv .venv {{PY}} -m pip install -r requirements.txt build: {{PY}} -m compileall src/ echo 构建完成 test: {{PY}} -m pytest tests/ -q dev: setup {{PY}} app.py --port {{PORT}}VENV用条件表达式区分 Windows 与 Unix 下虚拟环境解释器的位置后面全部命令都走{{PY}}不受系统 Python 版本影响dev声明了setup依赖新人第一次just dev会自动装好环境PORT写在.env里由dotenv-load自动载入不用每次传参just b则是日常最高频的入口。整份文件自包含新成员读完就能开工。八、资源与下一步写的时候想查语法仓库里这几处就够了官方中文手册最完整的语法参考按章节组织示例集合各种场景的现成模板examples/cross-platform.just跨平台变量写法参考examples/kitchen-sink.just把所有特性塞进一个文件的集合示例README.中文.md完整中文 README现在打开你手头项目的终端新建justfile把最常敲的那条 build 命令原样搬进去再给它加一个default食谱。跑通just裸命令之后团队里就没人再需要问这个怎么起了。【免费下载链接】just Just a command runner项目地址: https://gitcode.com/GitHub_Trending/ju/just创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表