Skip to content

缓存管理 (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/)。

何时需要更新?

在以下情况下更新模板:

  1. 模板有新版本

    • 新功能
    • Bug 修复
    • 依赖更新
  2. 创建项目失败

    • 缓存可能损坏
    • 模板不完整
  3. 定期维护

    • 建议每月更新一次
    • 保持模板最新

清理缓存

基本用法

bash
flu-cli cache clean

# 简写
flu-cli c clean

清理所有缓存

bash
flu-cli cache clean

输出:

🗑️  清理缓存...

? 确认清理所有缓存?这将删除所有模板缓存。(Y/n)

确认后:

⠋ 删除缓存目录...
✓ 缓存清理完成

下次创建项目时将重新下载模板。

清理内容

清理缓存会删除:

  • ✅ 所有模板缓存
  • ✅ 临时文件
  • ❌ 不会删除配置文件(作者名称、自定义模板配置等)

何时需要清理?

在以下情况下清理缓存:

  1. 缓存损坏

    • 创建项目失败
    • 文件不完整
  2. 释放磁盘空间

    • 缓存占用空间较大
    • 不常用 flu-cli
  3. 重置环境

    • 重新开始
    • 测试新版本

不使用缓存

创建项目时跳过缓存

bash
flu-cli new my_app --no-cache

这会:

  • 🚫 不使用本地缓存
  • 📥 强制从 Git 拉取最新代码
  • 💾 更新本地缓存

何时使用 --no-cache?

  1. 需要最新模板

    • 刚发布新版本
    • 需要最新功能
  2. 缓存可能过期

    • 长时间未更新
    • 模板有重大更新
  3. 测试模板

    • 开发自定义模板
    • 验证模板更新

缓存大小

查看缓存大小

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 时,会自动下载模板缓存。

网络问题

如果网络不稳定,可以:

  1. 使用缓存创建项目
  2. 稍后更新模板

磁盘空间

如果磁盘空间紧张:

  1. 清理缓存
  2. 使用 --no-cache 创建项目
  3. 创建后再次清理

团队协作

团队可以:

  1. 共享自定义模板 Git 仓库
  2. 统一模板版本
  3. 定期更新缓存

故障排除

创建项目失败

尝试清理缓存并重新创建:

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

下一步

Released under the MIT License.