Swift Package Manager 缓存能删吗?SwiftPM 清理
可以放心删会自动重新生成;Thermo 直接删除。
位置
~/Library/Caches/org.swift.swiftpm~/Library/org.swift.swiftpm/collections.json
这是什么
Swift Package Manager 在解析依赖时,会把各个包的 Git 仓库镜像缓存在 org.swift.swiftpm 目录中,供不同项目共享;collections.json 记录的是包集合(package collections)的配置数据。
为什么会这么大
缓存里保存的是完整的 Git 仓库,包括全部历史提交。依赖越多、引用的仓库越大,缓存就越大,SwiftPM 不会自动清理不再使用的仓库。
能删吗?删了会怎样
安全。删除后下次解析依赖时,SwiftPM 会重新克隆需要的仓库,第一次会慢一点,已有项目的源码和构建产物不受影响。Swift 自带的 purge-cache 命令可以完成同样的清理。
小提示
Xcode 项目里的 Swift 包检出其实放在 DerivedData 下各项目的 SourcePackages 目录,清理 DerivedData 时会一并重新拉取。
先看看占了多少
du -sh "$HOME/Library/Caches/org.swift.swiftpm" "$HOME/Library/org.swift.swiftpm/collections.json" 2>/dev/null用它自带的命令清理
swift package purge-cache手动删除
在「终端」里执行。删除不可撤销,执行前请确认路径。
rm -rf "$HOME/Library/Caches/org.swift.swiftpm"/*
rm -rf "$HOME/Library/org.swift.swiftpm/collections.json"