Flu CLI for VSCode
Flu CLI 是专为 Flutter 开发者打造的效率神器,提供 MVVM 架构生成、智能代码模版和规范化工作流。
🚀 核心功能
🎯 双模板系统
- 内置模板:Lite、Modular、Clean Architecture 三种架构模板
- 自定义模板:支持 Git 仓库和本地文件夹,自动记录历史,快速复用
⚙️ 完全可配置
- 通过
.flu-cli.json 配置文件,适配任何项目结构
- 自定义生成路径、默认类型、Base 类继承等
- 无需修改代码,即可在老项目中使用
🚀 双入口操作
- 命令面板:
Cmd+Shift+P 快速访问所有功能
- 右键菜单:支持在资源管理器中右键快速创建,操作更加便捷
✨ 功能演示
无需打开终端,直接在目录右键选择 Flu: ***,所见即所得。
创建新项目

生成文件

初始化配置文件

自定义模板

⏱️ 快速上手
安装
在 VSCode 扩展市场搜索 "Flu CLI" 并安装。
创建第一个项目
方式 1:右键菜单(推荐)
- 在资源管理器中右键点击文件夹
- 选择
Flu: 创建新项目
- 选择模板(Lite/Modular/Clean/自定义)
- 输入项目名称和包名
- 完成!🎉
方式 2:命令面板
- 按
Cmd+Shift+P (macOS) 或 Ctrl+Shift+P (Windows/Linux)
- 输入
Flu: New Project
- 按照提示操作
📚 核心功能
1. 项目模板
| 模板 |
说明 |
适用场景 |
| Flutter Native |
纯净的 flutter create 项目 |
不需要架构约束 |
| Lite |
轻量级 MVVM 结构 |
小型项目、快速原型 |
| Modular |
基于 Feature 的模块化架构 |
中大型项目 |
| Clean |
整洁架构(Clean Architecture) |
企业级应用 |
| 自定义模板 |
Git 仓库或本地文件夹 |
团队标准化 |
2. 自定义模板管理
添加 Git 模板:
- 创建项目时选择 "自定义模板..."
- 选择 "Git 仓库"
- 输入 Git URL(支持 GitHub/GitLab/Gitee)
- 输入模板名称
- 模板自动缓存,下次直接使用
添加本地模板:
- 创建项目时选择 "自定义模板..."
- 选择 "本地文件夹"
- 浏览到模板目录
- 输入模板名称
- 立即可用
管理模板:
- 所有自定义模板会显示在模板列表中
- 支持删除不再使用的模板
- 自动记录最后使用时间
3. 智能文件生成
支持生成以下类型:
| 类型 |
说明 |
配置支持 |
| Page |
页面文件(Stateful/Stateless) |
✅ 完全可配置 |
| ViewModel |
视图模型(业务逻辑层) |
✅ 完全可配置 |
| Widget |
通用组件 |
✅ 完全可配置 |
| Component |
业务组件 |
✅ 完全可配置 |
| Model |
数据模型(支持 JSON 生成) |
✅ 完全可配置 |
| Module |
完整功能模块 |
✅ 完全可配置 |
使用方式:
- 右键点击文件夹 →
Flu: 生成文件
- 或使用命令面板 →
Flu: Generate
4. 配置文件(.flu-cli.json)
Flu CLI 的强大之处在于其高度可配置性。你可以在项目根目录的 .flu-cli.json 中控制一切。
初始化配置文件(2 种方式):
方式 1:右键菜单(推荐)
- 在项目根目录右键
- 选择
Flu: 初始化项目
- 自动生成
.flu-cli.json
方式 2:命令面板
- 按
Cmd+Shift+P / Ctrl+Shift+P
- 输入
Flu: Init
- 自动生成配置文件
配置示例:
{
"generators": {
"page": {
"path": "lib/pages", // 支持自定义生成page 路径
"defaultType": "stateful", // 支持生成 less + stateful
"withViewModel": false, // 支持直接生成vm
"fileSuffix": "_page", // 生成 xxx_page.dart
"withBasePage": false, // 支持继承基础类
"basePageClass": "BasePage", // 配置基础类名字
"basePageImport": "lib/base/base_page.dart" // 配置基础类路径
},
"viewModel": {
"path": "lib/viewmodels",
"withBaseViewModel": false, // 支持继承基础类
"fileSuffix": "_viewmodel", // 生成 xxx_viewmodel.dart
"baseViewModelClass": "BaseViewModel", // 配置基础类名字
"baseViewModelImport": "lib/base/base_viewmodel.dart" // 配置基础类路径
},
"widget": {
"path": "lib/widgets",
"fileSuffix": "_widget",
"defaultType": "stateless"
},
"component": {
"path": "lib/components",
"defaultType": "stateless",
"fileSuffix": "_component"
},
"model": {
"path": "lib/models",
"fileSuffix": "_model"
},
""
"module": {
"path": "lib/features/{feature}",
"structure": [
"pages",
"viewmodels",
"widgets",
"services",
"models"
]
}
}
}
详细配置说明: 查看 完整配置文档
🖥️ 命令行用户?
如果你更习惯使用终端,可以试试 Flu CLI 命令行工具:
# 安装
npm install -g @flu-cli/cli
# 创建项目
flu-cli create my-app
# 生成文件
flu-cli generate page home
👉 查看 CLI 完整文档
VSCode 扩展 vs CLI 工具:
- 扩展:可视化操作,右键菜单,适合日常开发
- CLI:脚本化,CI/CD 集成,适合自动化场景
🔧 在现有项目中使用
Flu CLI 不仅可以创建新项目,还可以在任何现有的 Flutter 项目中使用!
步骤 1:初始化配置
方式 1:右键菜单(推荐)
- 在项目根目录右键
- 选择
Flu: 初始化项目
- 自动生成
.flu-cli.json
方式 2:命令面板
- 按
Cmd+Shift+P / Ctrl+Shift+P
- 输入
Flu: Init
- 自动生成配置文件
步骤 2:自定义配置
编辑生成的 .flu-cli.json,匹配你的项目结构:
{
"generators": {
"page": {
"path": "lib/ui/pages", // 你的页面路径
"defaultType": "stateless", // 默认类型
"withViewModel": true, // 是否生成 ViewModel
"withBasePage": true, // 是否继承 BasePage
"basePageClass": "MyBasePage", // 你的 BasePage 类名
"basePageImport": "package:your_app/core/base_page.dart"
},
"viewModel": {
"path": "lib/viewmodels"
},
"model": {
"path": "lib/data/models"
}
}
}
步骤 3:开始使用
现在你可以在项目中使用 Flu: 生成文件 命令了!
示例:生成一个登录页面
- 右键点击
lib/ui/pages 文件夹
- 选择
Flu: 生成文件
- 选择
Page
- 输入名称:
login
- 选择类型(会根据配置自动选中默认值)
生成结果:
lib/
├── ui/
│ └── pages/
│ └── login_page.dart // 继承自 MyBasePage
└── viewmodels/
└── login_viewmodel.dart // 自动生成
📦 命令列表
| 命令 |
说明 |
快捷方式 |
Flu: New Project |
创建新的 Flutter 项目 |
右键菜单 |
Flu: Generate |
生成页面/组件/模型等 |
右键菜单 |
Flu: Init |
初始化配置文件 |
右键菜单 |
💡 代码片段 (Snippets)
输入前缀即可触发:
stPage: 完整页面结构 (Page + ViewModel)
stWidget / lessWidget: 标准组件
viewmodel: 基础 ViewModel 类
model: 数据模型类
listPage: 列表页结构 (BaseListPage)
listViewModel: 列表 ViewModel (BaseListViewModel)
service: 通用 Service 类
component: 通用 Component 类
查看完整片段列表
📚 详细文档
想要深入了解 Flu CLI 的各项功能?请查阅我们的详细文档:
🤝 贡献与反馈
本项目开源于 Gitee。欢迎提交 Issue 或 PR!
💬 加入社区
获取最新动态、反馈问题、定制化开发或与开发者直接交流,欢迎加入我们的微信群:

如果群二维码过期,请添加作者微信 Huoye-TT 备注 "flu-cli" 拉您入群。
License: MIT