缓存管理 (cache)
flu-cli 使用缓存机制来加速项目创建。本文介绍如何管理缓存。
缓存机制
为什么需要缓存?
首次创建项目时,flu-cli 需要从 Git 克隆模板,这需要:
- 网络连接
- 下载时间(取决于网络速度)
使用缓存后:
- ⚡ 秒级创建项目
- 🚫 无需网络连接
- 💾 节省带宽
缓存位置
缓存保存在用户目录:
~/.flu-cli/
├── templates/ # 模板缓存
│ ├── lite/
│ ├── modular/
│ └── clean/
└── config.json # 配置文件缓存内容
- 内置模板: Lite、Modular、Clean
- 自定义模板: 用户添加的 Git 模板
- 配置信息: 作者名称、默认模板等
更新模板缓存(默认强制刷新)
基本用法
bash
flu-cli update-templates [template-name] [--force]
# 简写
flu-cli u [template-name]
flu-cli update [template-name]更新所有模板
bash
flu-cli update-templates [--force]
# 或
flu-cli u [--force]输出:
🔄 更新模板缓存...
⠋ 更新 Lite 模板...
✓ Lite 模板更新成功
⠋ 更新 Modular 模板...
✓ Modular 模板更新成功
⠋ 更新 Clean 模板...
✓ Clean 模板更新成功
✨ 所有模板更新完成!更新指定模板(清理未跟踪文件)
bash
flu-cli update-templates lite [--force]
flu-cli u modular [--force]
flu-cli update clean [--force]输出:
🔄 更新 Modular 模板...
⠋ 强制刷新并清理未跟踪文件...
✓ Modular 模板更新成功选项
--force 强制刷新并清理未跟踪文件(等同于当前默认行为)说明:从 v2.0.1 起,update-templates 默认执行强制刷新;会在拉取最新提交后执行 git clean -fdx,清理缓存目录中的未跟踪文件与空目录,避免历史残留(如旧版模板中的 lib/examples/)。
何时需要更新?
在以下情况下更新模板:
模板有新版本
- 新功能
- Bug 修复
- 依赖更新
创建项目失败
- 缓存可能损坏
- 模板不完整
定期维护
- 建议每月更新一次
- 保持模板最新
清理缓存
基本用法
bash
flu-cli cache clean
# 简写
flu-cli c clean清理所有缓存
bash
flu-cli cache clean输出:
🗑️ 清理缓存...
? 确认清理所有缓存?这将删除所有模板缓存。(Y/n)确认后:
⠋ 删除缓存目录...
✓ 缓存清理完成
下次创建项目时将重新下载模板。清理内容
清理缓存会删除:
- ✅ 所有模板缓存
- ✅ 临时文件
- ❌ 不会删除配置文件(作者名称、自定义模板配置等)
何时需要清理?
在以下情况下清理缓存:
缓存损坏
- 创建项目失败
- 文件不完整
释放磁盘空间
- 缓存占用空间较大
- 不常用 flu-cli
重置环境
- 重新开始
- 测试新版本
不使用缓存
创建项目时跳过缓存
bash
flu-cli new my_app --no-cache这会:
- 🚫 不使用本地缓存
- 📥 强制从 Git 拉取最新代码
- 💾 更新本地缓存
何时使用 --no-cache?
需要最新模板
- 刚发布新版本
- 需要最新功能
缓存可能过期
- 长时间未更新
- 模板有重大更新
测试模板
- 开发自定义模板
- 验证模板更新
缓存大小
查看缓存大小
bash
du -sh ~/.flu-cli/templates输出示例:
15M ~/.flu-cli/templates典型大小
- 单个模板: 约 5MB
- 所有内置模板: 约 15MB
- 自定义模板: 取决于模板大小
配置文件
位置
~/.flu-cli/config.json内容
json
{
"authorName": "Your Name",
"defaultTemplate": {
"type": "builtin",
"idOrName": "modular"
},
"customTemplates": [
{
"id": "custom-1",
"name": "My Template",
"type": "git",
"repo": "https://github.com/yourorg/template.git",
"branch": "main",
"lastUsedAt": 1699999999999
}
]
}手动编辑
可以手动编辑配置文件:
bash
# macOS/Linux
nano ~/.flu-cli/config.json
# Windows
notepad %USERPROFILE%\.flu-cli\config.json重置配置
删除配置文件以重置:
bash
rm ~/.flu-cli/config.json下次使用时会创建新的配置文件。
常见问题
缓存在哪里?
~/.flu-cli/templates/如何查看缓存?
bash
ls -la ~/.flu-cli/templates/缓存会自动更新吗?
不会。需要手动更新:
bash
flu-cli update-templates清理缓存会删除配置吗?
不会。只删除模板缓存,保留配置文件。
如何完全重置 flu-cli?
bash
# 删除整个 flu-cli 目录
rm -rf ~/.flu-cli/下次使用时会重新初始化。
多个项目共享缓存吗?
是的。所有项目共享同一个缓存目录。
缓存会过期吗?
不会自动过期。建议定期更新:
bash
flu-cli update-templates如何备份缓存?
bash
# 备份
cp -r ~/.flu-cli/ ~/flu-cli-backup/
# 恢复
cp -r ~/flu-cli-backup/ ~/.flu-cli/最佳实践
定期更新
建议每月更新一次模板:
bash
flu-cli update-templates首次使用
首次使用 flu-cli 时,会自动下载模板缓存。
网络问题
如果网络不稳定,可以:
- 使用缓存创建项目
- 稍后更新模板
磁盘空间
如果磁盘空间紧张:
- 清理缓存
- 使用
--no-cache创建项目 - 创建后再次清理
团队协作
团队可以:
- 共享自定义模板 Git 仓库
- 统一模板版本
- 定期更新缓存
故障排除
创建项目失败
尝试清理缓存并重新创建:
bash
flu-cli cache clean
flu-cli new my_app --no-cache模板不完整
更新模板缓存:
bash
flu-cli update-templates网络错误
使用缓存创建项目:
bash
flu-cli new my_app
# 不使用 --no-cache权限错误
检查缓存目录权限:
bash
ls -la ~/.flu-cli/如有问题,重新创建目录:
bash
rm -rf ~/.flu-cli/
flu-cli new my_app