Skip to content

Fish 配置参考指南

🌐 翻译与贡献: 想用您的语言翻译或改进本文档?请参阅我们的 翻译指南

本指南介绍如何使用 fish.toml 配置 Fish 工作区。


配置文件概览

Fish 会读取工作区根目录下的 fish.toml 配置文件。如果未提供 fish.toml,Fish 将自动应用一套合理的默认值。

toml
[build]
backend = "rust"
jobs = 8
no_cache = false
sandbox = false
semantic = true
critical_path = true
ram_limit = 85

[cache]
dir = "~/.fish/cache"
reflink = true

[remote]
cache_url = "http://127.0.0.1:8080"
token = "secret-cache-token"

[daemon]
port = 9527

[pipelines.build]
depends_on = ["^build"]
inputs = ["src/**/*", "Cargo.toml", "Cargo.lock"]
outputs = ["target/release/**/*"]

[pipelines.test]
depends_on = ["build"]
inputs = ["tests/**/*", "src/**/*"]

顶级配置段

[build] —— 执行参数配置

配置键类型默认值说明
backend字符串Auto主工具链后端 (rust, ts, go, cc, python, java, dotnet, docker)。
jobs整数num_cpus最大并发执行的工作任务数。
no_cache布尔值false禁用本地和远程缓存查询。
sandbox布尔值false在沙箱隔离环境中执行构建任务。
semantic布尔值false启用基于 AST 的语义级变动检测。
critical_path布尔值false优先执行依赖图关键路径上的瓶颈任务。
ram_limit整数 (1-100)85当系统可用内存低于此百分比时动态节流限制并发数。
timeout整数None单个任务的超时时间(秒)。

[cache] —— 本地存储配置

配置键类型默认值说明
dir字符串~/.fish/cache本地内容寻址存储(CAS)的存储目录路径。
reflink布尔值true使用写时复制 (CoW) 或硬链接极速实体化产物,免去磁盘 I/O 复制。

[remote] —— 分布式缓存与执行

配置键类型默认值说明
cache_url字符串None远程缓存服务器地址 (HTTP)。
token字符串None远程访问所需的 Bearer 认证 Token。
workers字符串列表[]远程执行集群 Worker 节点地址列表(例如 ["worker1:9000", "worker2:9000"])。
send_source布尔值false压缩并传输源码快照至无共享存储的远程 Worker 节点。

[daemon] —— 后台 IPC 守护服务

配置键类型默认值说明
port整数9527Fish 后台守护进程所监听的本地回环 TCP 端口。

[pipelines.<task>] —— 任务流水线拓扑

配置各任务之间的依赖顺序以及缓存边界:

toml
[pipelines.build]
depends_on = ["^build"]
inputs = ["src/**/*", "Cargo.toml"]
outputs = ["target/release/*"]

[pipelines.test]
depends_on = ["build"]
inputs = ["tests/**/*", "src/**/*"]

[pipelines.lint]
inputs = ["src/**/*.rs"]