从
node_modules黑洞到 AI 编辑器缓存怪兽,一份可复现的清理手册
前言
作为AIbug修复师,我们的电脑总是莫名其妙地"膨胀"。明明项目代码没多少,C盘却红得发紫。上周我的电脑报警:200GB的C盘仅剩10GB可用,本文记录完整的诊断和清理过程。
诊断:用 WizTree 锁定元凶
拒绝盲目清理,先用 WizTree 扫描(秒级完成,比系统自带快100倍):
52.1 GB ├─ AppData
30.0 GB │ ├─ Roaming
15.7 GB │ │ ├─ Trae ← 🔴 头号杀手:AI编辑器
4.2 GB │ │ ├─ DingTalk ← 钉钉缓存
2.7 GB │ │ ├─ LarkShell ← 飞书缓存
2.5 GB │ │ ├─ Tencent ← QQ/微信
1.2 GB │ │ ├─ Code ← VS Code
21.9 GB │ ├─ Local ← 待展开...
结论:不是 node_modules,是现代开发工具生态在吞噬空间。
清理方案:不丢数据的迁移术
1. Trae 15.7GB → 符号链接迁移
字节跳动的 AI 编辑器默认把模型、索引全塞 C 盘,且无官方路径设置。
# 1. 完全关闭 Trae(任务管理器确认无残留进程)
taskkill /F /IM Trae.exe 2>$null
# 2. 整目录迁移到D盘(保留权限和时间戳)
$source = "C:\Users\Administrator\AppData\Roaming\Trae"
$target = "D:\AppData\Roaming\Trae"
robocopy $source $target /E /COPY:DAT /R:3 /W:5 /MT:8
# 3. 原子级替换:先重命名,再建链接
Rename-Item $source "Trae_backup_$(Get-Date -Format 'yyyyMMdd')"
cmd /c mklink /J $source $target
# 4. 验证后删除备份
# Remove-Item "$source_backup_xxxx" -Recurse
原理:mklink /J 创建目录联接,Trae 以为自己还在 C 盘,实际读写都在 D 盘。
2. 钉钉/飞书/QQ → 官方设置 + 链接兜底
| 软件 | 官方设置路径 | 若设置无效,用符号链接 |
|---|---|---|
| 钉钉 | 设置 → 文件管理 → 更改位置 | mklink /J "Roaming\DingTalk" "D:\DingTalk" |
| 飞书 | 设置 → 文件管理 → 文件保存位置 | 同上 |
| 设置 → 文件管理 → 更改目录 | 注意同时迁移 Documents\Tencent Files |
微信特别注意(聊天记录值钱,别乱删):
# 微信数据通常在 Documents,体积巨大
robocopy "C:\Users\Administrator\Documents\WeChat Files" `
"D:\WeChat Files" /E /MOVE
mklink /J "C:\Users\Administrator\Documents\WeChat Files" "D:\WeChat Files"
3. npm/yarn 缓存根治配置
# 创建D盘统一目录
mkdir D:\nodejs\npm_global, D:\nodejs\npm_cache, D:\yarn\cache
# 永久修改配置(写入 .npmrc)
npm config set prefix "D:\nodejs\npm_global"
npm config set cache "D:\nodejs\npm_cache"
# Yarn 同理
yarn config set global-folder "D:\yarn\global"
yarn config set cache-folder "D:\yarn\cache"
# 清理旧缓存
npm cache clean --force
yarn cache clean
验证生效:
npm config list
# 确认 prefix 和 cache 指向 D 盘
4. IDE 缓存清理(无需迁移,直接删)
VS Code:
# 安全删除,重启后自动重建
Remove-Item "$env:APPDATA\Code\CachedData" -Recurse -Force
Remove-Item "$env:APPDATA\Code\logs" -Recurse -Force
WebStorm/IDEA:
# 索引文件可重建,日志放心删
Remove-Item "$env:LOCALAPPDATA\JetBrains\*\index" -Recurse -Force
Remove-Item "$env:LOCALAPPDATA\JetBrains\*\log" -Recurse -Force
系统级收尾
Windows 更新清理(可能藏 10GB+)
# 分析组件存储
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
# 执行清理(不可逆,但安全)
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
休眠文件(不用休眠则关闭)
# 释放内存等量的空间(16GB内存=释放16GB)
powercfg -h off
虚拟内存迁移
设置 → 系统 → 关于 → 高级系统设置 → 性能 → 高级 → 虚拟内存
→ 关闭C盘自动管理 → D盘设置自定义大小(建议 4096-8192MB)
成果验收
| 项目 | 清理前 | 清理后 | 方式 |
|---|---|---|---|
| Trae | 15.7GB | ~2GB | 符号链接迁移 |
| 钉钉 | 4.2GB | ~500MB | 官方设置+链接 |
| 飞书 | 2.7GB | ~300MB | 官方设置+链接 |
| 腾讯系 | 2.5GB | ~1GB | 聊天记录迁移 |
| npm缓存 | ~2GB | ~200MB | 配置+清理 |
| IDE缓存 | ~3GB | ~500MB | 直接删除 |
| 系统更新残留 | ~8GB | ~1GB | Dism清理 |
| C盘总计 | ~190GB已用 | ~140GB已用 | 释放50GB+ |
最终状态:C盘剩余 60GB+ 可用,告别红色警报。
长期防御:防止复发
# 每月定时任务(可加入计划任务)
npm cache clean --force
Remove-Item "$env:TEMP\*" -Recurse -Force -ErrorAction SilentlyContinue
# 新项目规范:一律放 D:\Projects
# 使用 pnpm 替代 npm(硬链接省空间)
附录:一键诊断脚本
保存为 disk-check.ps1,定期执行:
Write-Host "=== 前端环境磁盘占用分析 ===" -ForegroundColor Cyan
$targets = @(
@{Name="Trae"; Path="$env:APPDATA\Trae"},
@{Name="钉钉"; Path="$env:APPDATA\DingTalk"},
@{Name="飞书"; Path="$env:APPDATA\LarkShell"},
@{Name="QQ/微信"; Path="$env:APPDATA\Tencent"},
@{Name="VS Code"; Path="$env:APPDATA\Code"},
@{Name="npm缓存"; Path=(npm config get cache)},
@{Name="Temp"; Path="$env:TEMP"}
)
$targets | ForEach-Object {
if (Test-Path $_.Path) {
$size = (Get-ChildItem $_.Path -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum).Sum / 1GB
[PSCustomObject]@{
项目 = $_.Name
路径 = $_.Path
大小GB = [math]::Round($size, 2)
状态 = if ($size -gt 5) { "🔴 需清理" } elseif ($size -gt 1) { "🟡 关注" } else { "🟢 正常" }
}
}
} | Format-Table -AutoSize
如果本文对你有帮助,欢迎点赞收藏。你的 C 盘还遇到过什么奇葩的空间杀手?评论区见。
参考链接