ARTICLE DETAIL

资讯详情

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

参加Trae创造力大赛后两个文件夹体积暴增?用uv+Python排查并配好TaoToken

参加Trae创造力大赛后两个文件夹体积暴增?用uv+Python排查并配好TaoToken 1. 两个文件夹突然吃掉几十 GBTrae 创造力大赛项目本地迭代后的真实场景参加 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.ps1param( [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(keylambda x: x[1], reverseTrue) 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_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 注意 API 地址不带 UTM 参数。先拿 Key。进入控制台创建https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite创建后在 API Keys 页面复制https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite拿到 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_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite这一步做完缓存清理和模型调用就解耦了清缓存不影响 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 sizeuv cache dir打印缓存根目录uv cache size给出当前占用。清理后重新跑一次uv sync验证环境完好uv sync --frozen如果命令行报错或已卸载 uv也可以手动删。先关掉所有 Python 终端、VS Code 和 uv 相关进程再进cache\目录把archive-v0整体删除。手动删之前建议先剪切到桌面备份确认项目能正常uv sync后再彻底删。4.2 Edge PWACacheStorage 定位与清理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_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite第二组验证项目本身能跑。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_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite6. 本篇常见错排查路径、权限与误删报错一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_KEYPowerShell确认实际生效的值。报错五清理后项目目录还是很大。回到第 2 节的 PowerShell 脚本重新排序看大头。常见遗漏是node_modules和.venv本身这两个不建议删但可以用uv的硬链接模式或 pnpm 减少重复。报错六误删了.venv。不用慌uv sync会按pyproject.toml和uv.lock重建前提是 lock 文件还在。所以清理前务必确认uv.lock已提交或备份。排查顺序建议固定先量体积再清缓存再验证 Key最后验证构建。每一步都有回退路径不会一次性把环境搞崩。
返回列表