☰
参加Trae创造力大赛后两个文件夹体积暴增?用uv+Python排查并配好TaoToken
2026/9/27 13:15:17 网站建设 项目流程

1. 两个文件夹突然吃掉几十 GB:Trae 创造力大赛项目本地迭代后的真实场景

参加 Trae 创造力大赛那阵子,我本地同时开着两个工程文件夹:一个是主应用仓库,另一个是给 PWA 演示准备的独立前端。比赛周期里反复装依赖、反复构建、反复在 Edge 里预览,等到某天 C 盘告警,我才发现这两个文件夹加上它们牵连出来的缓存目录,体积已经膨胀到离谱的程度。

这里说的「体积暴增」不是项目源码本身变大,而是围绕 Python 依赖管理和浏览器 PWA 缓存产生的附属产物。Trae 这类 AI 编程工具在迭代时会频繁触发依赖安装和前端构建,uv 作为 Python 包管理器会把下载过的 wheel 包缓存到本地,Edge 作为 PWA 运行环境会把离线资源塞进 CacheStorage。两个方向叠加,几十 GB 就这么没了。

这篇面向的是同样在本地做 AI 应用迭代、用 uv 管 Python 环境、用 Edge 跑 PWA 预览的开发者。核心检索词就三个:Trae 项目目录膨胀、uv 缓存清理、Edge PWA CacheStorage。我会先给可复制的目录体积对比命令,再讲 uv 缓存和 PWA 缓存怎么定位与清理,最后把 TaoToken 的统一 Key 接进 settings.json,保证清理完 AI 工具调用依然可用。

适合谁看:本地磁盘吃紧、项目目录越跑越大、又不想重装环境的同学。全程命令可直接粘贴,路径按你自己的用户名替换即可。

2. 先量体积再动手:用 PowerShell 和 Python 给目录做 Pareto 排序

盲目删文件夹是大忌。我试过直接删 CacheStorage,结果某个 PWA 演示页离线资源全丢,重新加载花了好几分钟。正确做法是先量化,找出真正的大头。

Windows 下最顺手的是 PowerShell。下面这段递归统计指定目录下每个子文件夹的体积,并按从大到小排序,输出前 20 名。你可以把它存成dirsize.ps1:

param( [string]$Root = "." ) Get-ChildItem -Path $Root -Directory -Force | ForEach-Object { $size = (Get-ChildItem -Path $_.FullName -Recurse -File -Force -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum [PSCustomObject]@{ Folder = $_.FullName SizeGB = [math]::Round($size / 1GB, 3) } } | Sort-Object SizeGB -Descending | Select-Object -First 20 | Format-Table -AutoSize

运行方式:

powershell -ExecutionPolicy Bypass -File .\dirsize.ps1 -Root "C:\Users\你的用户名\AppData\Local\uv"

把-Root换成你的项目目录,就能看到每个子文件夹占多少 GB。这就是人工摸排里说的 Pareto 思路:先看排名,再决定砍谁。

如果项目里有 Python 环境,也可以用 Python 写一个跨平台的统计脚本,方便在 CI 或 WSL 里跑:

import os from pathlib import Path def dir_size(path: Path) -> int: total = 0 for p in path.rglob("*"): if p.is_file(): try: total += p.stat().st_size except OSError: pass return total root = Path(os.environ.get("TARGET_ROOT", ".")) rows = [] for child in root.iterdir(): if child.is_dir(): rows.append((child, dir_size(child))) rows.sort(key=lambda x: x[1], reverse=True) for path, size in rows[:20]: print(f"{size / 1024**3:8.3f} GB {path}")

两个脚本配合用,基本能锁定膨胀来源。实测下来,Trae 大赛项目里排前面的通常是三类:uv\cache\archive-v0、Edge\User Data\Profile X\Service Worker\CacheStorage、以及前端构建产物dist或.next。

3. TaoToken 前置:把统一 Key 接进 settings.json 的骨架

清理缓存不能把 AI 工具调用一起清没了。Trae 这类工具在本地迭代时,模型调用配置通常落在项目或用户级的settings.json里。为了让清理后调用链不断,我习惯把 Key 统一走 TaoToken,而不是散落在多个环境变量里。

TaoToken 的定位是给开发者提供统一的模型调用入口,一个 Key 覆盖对话、编码、Agent 等场景。官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 基址是 https://taotoken.net/api ,注意 API 地址不带 UTM 参数。

先拿 Key。进入控制台创建:

https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite

创建后在 API Keys 页面复制:

https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite

拿到 Key 后,在项目根目录的.trae/settings.json(或你工具对应的配置路径)里写入统一骨架。下面是一个可复制的结构,字段名按你实际工具调整,核心是把 base_url 和 api_key 指向 TaoToken:

{ "ai": { "provider": "taotoken", "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoTokenKey", "models": { "chat": "claude-sonnet-4-5", "coding": "claude-sonnet-4-5", "agent": "claude-sonnet-4-5" } }, "python": { "manager": "uv", "cache_dir": "C:\\Users\\你的用户名\\AppData\\Local\\uv\\cache" } }

注意两点:一是base_url只写到/api,不要带多余路径;二是 Key 不要提交到 Git,把settings.json加进.gitignore,或者用环境变量注入。如果你用 Claude Code 这类命令行工具,接入文档里有对应的环境变量写法:

https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

这一步做完,缓存清理和模型调用就解耦了:清缓存不影响 Key,换 Key 也不用动缓存。

4. 可复制配置:uv 缓存清理与 Edge PWA CacheStorage 处理

4.1 uv 缓存:archive-v0 是什么、怎么安全清

uv是 Astral 用 Rust 写的 Python 包管理与解析工具,速度比传统 pip 快很多。它下载过的 wheel 和源码包会缓存在:

C:\Users\你的用户名\AppData\Local\uv\cache\archive-v0\

项目越多、装过的库越大(PyTorch、Transformers 这类),这个目录积累的历史版本就越多。清理它是安全的,不会破坏已建好的虚拟环境和已安装依赖,唯一代价是下次装某些库要重新下载。

推荐用 uv 自带命令,不会破坏文件锁:

uv cache clean

如果只想清掉未使用、过期的条目,保留最近可能用到的:

uv cache prune

想先看缓存占多少、有哪些条目,可以:

uv cache dir uv cache size

uv cache dir打印缓存根目录,uv cache size给出当前占用。清理后重新跑一次uv sync验证环境完好:

uv sync --frozen

如果命令行报错或已卸载 uv,也可以手动删。先关掉所有 Python 终端、VS Code 和 uv 相关进程,再进cache\目录把archive-v0整体删除。手动删之前建议先剪切到桌面备份,确认项目能正常uv sync后再彻底删。

4.2 Edge PWA:CacheStorage 定位与清理

Edge 里跑的 PWA 会把离线资源存进 CacheStorage,重度使用网页应用时膨胀到几 GB 很常见。路径通常是:

%localappdata%\Microsoft\Edge\User Data\Profile 1\Service Worker\CacheStorage

手动清理步骤:完全关闭 Edge(任务管理器里确认没有残留进程),Win + R 输入上面路径回车,进入CacheStorage后删除里面的所有文件和子文件夹,但保留CacheStorage文件夹本身。担心误删就先剪切到桌面备份。

更精准的方式是用 Edge 自带的数据管理页:

edge://settings/content/all

在页面里按「数据存储」排序,能看到每个站点占多少空间,点垃圾桶单独清,或点「全部清除」。这样能避免误伤你正在调试的 PWA 演示页。

清理后部分网页应用下次打开要重新加载离线资源,极少数需要重新登录,属于正常现象。如果过段时间又变大,是 PWA 自动缓存导致的,定期重复即可。

4.3 项目构建产物:dist 与缓存目录

Trae 大赛项目里前端构建产物也常是大头。检查项目根目录下这些:

dist/ .next/ node_modules/.cache/ __pycache__/ .pytest_cache/

dist和.next可以按需重建,__pycache__和.pytest_cache直接删。用 uv 管理的项目,虚拟环境.venv不要删,删了要重装。可以在.gitignore里把这些都排除,避免误提交。

5. 验证请求:确认清理后 AI 调用与项目构建都正常

清理完别急着关终端,做两组验证。

第一组,验证 TaoToken Key 可用。用 curl 打一次模型对话接口:

curl -X POST https://taotoken.net/api/v1/messages \ -H "Content-Type: application/json" \ -H "x-api-key: sk-你的TaoTokenKey" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "claude-sonnet-4-5", "max_tokens": 64, "messages": [{"role": "user", "content": "回复 ok 两个字母"}] }'

返回里能看到content字段带ok,说明 Key 和 base_url 都对。如果报 401,检查 Key 是否复制完整;报 404,检查 base_url 是否写成了带多余路径的形式。想直接在网页里试模型,可以用模型对话页:

https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite

第二组,验证项目本身能跑。Python 侧:

uv sync --frozen uv run python -c "import sys; print(sys.version)"

前端侧按你项目的脚本跑一次构建:

npm run build

构建成功且体积回到正常范围,说明清理没伤到源码。如果构建报缺依赖,回到 uv 缓存那步重新uv sync即可,缓存会按需重建。

长期做编码和 Agent 任务的话,可以考虑 Coding Plan,把调用额度集中管理:

https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite

6. 本篇常见错排查:路径、权限与误删

报错一:uv cache clean提示文件被占用。说明还有 Python 进程或编辑器在跑。关掉 VS Code、Jupyter、终端里的 Python 进程,再执行。Windows 下可以用任务管理器搜python和uv结束残留。

报错二:手动删 CacheStorage 后 Edge 打不开或 PWA 白屏。大概率是删了CacheStorage文件夹本身而不是里面的内容。正确做法是保留文件夹,只删内部文件。已经删了的话,重新打开 Edge 会自动重建该目录,PWA 重新加载一次即可恢复。

报错三:uv sync报找不到包。清理缓存后首次同步需要联网重新下载,确认网络正常。如果公司网络有限制,检查是否走了内部镜像源,uv的源配置在pyproject.toml或uv.toml里。

报错四:TaoToken 调用返回 401。检查settings.json里 Key 是否带了多余空格,或环境变量是否覆盖了配置文件。用echo $env:TAOTOKEN_API_KEY(PowerShell)确认实际生效的值。

报错五:清理后项目目录还是很大。回到第 2 节的 PowerShell 脚本,重新排序看大头。常见遗漏是node_modules和.venv本身,这两个不建议删,但可以用uv的硬链接模式或 pnpm 减少重复。

报错六:误删了.venv。不用慌,uv sync会按pyproject.toml和uv.lock重建,前提是 lock 文件还在。所以清理前务必确认uv.lock已提交或备份。

排查顺序建议固定:先量体积,再清缓存,再验证 Key,最后验证构建。每一步都有回退路径,不会一次性把环境搞崩。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询