项目占空间先查构建缓存与旧 worktree
典型占用分布
| 位置 | 性质 | 能否安全删 |
|---|---|---|
.turbo/cache(Turborepo 构建缓存) | 缓存,会自动再生成 | ✅ 可立即删 |
worktree/*(各分支独立目录,含 iOS/Rust/Xcode 产物) | 旧分支产物 | 需确认分支是否还要 |
apps/web/.next | 构建产物 | ⚠️ 服务运行中先别碰 |
node_modules / .git | 依赖 / 版本库 | ❌ 不动 |
做法
- 先删构建缓存(
.turbo/cache之类),它不影响源码、会自动重建,往往一次就释放最大一块。 - 再决定是否清理旧 worktree 和
.next;正在运行的服务用着的产物先别动。 - 结合磁盘剩余空间判断紧急度。
别漏了系统级的构建缓存
按项目目录排查只看到一半。macOS「关于本机 → 储存空间」里的「开发者工具」不是某个软件, 而是系统把 Xcode 产生的构建缓存、代码索引、真机调试文件、模拟器数据归到这一类。实测大头是:
| 位置 | 性质 | 能否安全删 |
|---|---|---|
Xcode DerivedData(~/Library/Developer/Xcode/DerivedData) | 编译产物与模块索引 | ✅ 可删,会重建 |
| iOS Device Support | 真机系统符号(调试、解析崩溃栈用) | ⚠️ 删了下次连真机重新下载 |
| 模拟器数据 | 模拟器设备镜像 | ✅ 可删不用的设备 |
两个容易误判的点:
- 临时构建目录删了,Xcode 缓存还在:工程源目录在
/tmp下已被清掉,DerivedData 里那份同名缓存会一直留着 —— 所以「我早就删了那个项目」不等于空间已释放。 - 容量对不上先看十进制/二进制:系统面板用十进制 GB,
du用二进制 GiB,同一个目录显示 20.15 GB / 19 GiB 是同一块空间,不是两处占用。
所以排查顺序是:先按项目目录清(缓存 / 旧 worktree / 构建产物),再查 Xcode DerivedData 与模拟器。
相关
- 本机资源占用排查 —— 本条是它在「磁盘」这一层的实例
- worktree是独立目录产物与配置都隔离 —— 旧 worktree 之所以占空间大,正因为产物各存一份
- 本机卡顿先清残留开发进程
- 备用构建目录不要嵌在next目录里
- 清理客户端缓存先分清哪层可丢