Skip to content

Flu-CLI v2 命令参考

Flutter MVVM 脚手架工具 - 快速生成项目和代码

快速开始

bash
# 创建新项目
flu-cli new my_app

# 添加页面
flu-cli add page home

# 查看帮助
flu-cli --help

命令列表

1. new - 创建项目

创建一个新的 Flutter 项目,支持多种模板和状态管理器。

用法:

bash
flu-cli new [项目名称] [选项]
flu-cli n [项目名称]  # 简写

选项:

  • -t, --template <type> - 模板类型: lite, modular, clean
  • -s, --state <type> - 状态管理器: default, provider, getx
  • -d, --dir <path> - 项目存放目录(默认:当前目录)
  • --no-cache - 不使用缓存,强制从 Git 拉取
  • --no-network - 不包含网络层(默认包含)
  • --remote - 使用远程 Gitee 模板(默认使用本地模板)

示例:

bash
# 交互式创建(推荐)
flu-cli new

# 指定项目名和模板
flu-cli new my_app -t lite

# 指定状态管理器
flu-cli new my_app -s getx

# 完整配置
flu-cli new my_app -t modular -s provider -d ~/projects

2. add - 添加组件

在当前项目中添加各种代码组件。

用法:

bash
flu-cli add <> <> [选项]
flu-cli a <> <>  # 简写

支持的类型及别名:

类型别名说明
pagep页面组件
widgetw通用组件
componentc业务组件
viewmodelvViewModel
services服务层
modelm数据模型
modulemod完整功能模块

选项:

  • -f, --feature <name> - 所属功能模块(仅 modular/clean 模式)
  • --stateful - 创建 StatefulWidget
  • --stateless - 强制创建 StatelessWidget
  • --list-page - 创建列表页 (BaseListPage)
  • --no-vm - 不生成 ViewModel(仅 page 类型)
  • --type <type> - Service 类型: api, storage, auth(仅 service 类型)
  • --json <file> - 从 JSON 文件生成(仅 model 类型)
  • --list - 查看支持的类型列表

示例:

bash
# 添加页面(自动生成 ViewModel)
flu-cli add page home
flu-cli add p home  # 简写

# 添加列表页
flu-cli add page user_list --list-page

# 添加无状态页面
flu-cli add page about --stateless --no-vm

# 添加组件
flu-cli add widget custom_button
flu-cli add w custom_button  # 简写

# 添加 Service
flu-cli add service api --type api
flu-cli add s auth --type auth  # 简写 + 指定类型

# 添加 Model
flu-cli add model user
flu-cli add m user  # 简写

# 在功能模块下添加(modular/clean 模式)
flu-cli add page product -f shop

3. templates - 模板管理

查看可用模板列表或指定模板的详细信息。

用法:

bash
flu-cli templates [模板名称]
flu-cli t [模板名称]  # 简写

示例:

bash
# 查看所有模板
flu-cli templates

# 查看指定模板详情
flu-cli templates lite
flu-cli t modular  # 简写

4. generate-sm - 生成状态管理代码

为现有项目生成状态管理适配与配置。

用法:

bash
flu-cli generate-sm <>
flu-cli g <>  # 简写

选项:

  • -d, --dir <path> - 项目目录(默认:当前目录)
  • -m, --module <name> - 模块名称(modular/clean 支持分模块适配器)

示例:

bash
# 生成 Provider 状态管理
flu-cli generate-sm provider

# 生成 GetX 状态管理
flu-cli g getx  # 简写

5. update-templates - 更新模板缓存

更新本地模板缓存到最新版本。

用法:

bash
flu-cli update-templates [模板名称]
flu-cli u [模板名称]  # 简写

选项:

  • --force - 强制刷新并清理未跟踪文件

示例:

bash
# 更新所有模板
flu-cli update-templates

# 更新指定模板
flu-cli u lite  # 简写

# 强制刷新
flu-cli update-templates --force

6. cache - 缓存管理

管理本地模板缓存。

用法:

bash
flu-cli cache <action>
flu-cli c <action>  # 简写

支持的操作:

  • clean - 清理缓存

示例:

bash
# 清理缓存
flu-cli cache clean
flu-cli c clean  # 简写

7. completion - 自动补全

生成 Shell 自动补全脚本(支持 Bash/Zsh)。

用法:

bash
flu-cli completion
flu-cli comp  # 简写

安装方法:

bash
# Zsh
flu-cli completion >> ~/.zshrc
source ~/.zshrc

# Bash
flu-cli completion >> ~/.bashrc
source ~/.bashrc

常见工作流

创建新项目

bash
flu-cli new my_app
cd my_app
flutter pub get
flu-cli add page home
flu-cli add page user_list --list-page

在现有项目中使用

bash
cd existing_project

# 添加组件
flu-cli add page settings
flu-cli add service api

Modular 架构项目

bash
flu-cli new my_app -t modular
cd my_app

# 在 shop 模块下添加页面
flu-cli add page product -f shop
flu-cli add page cart -f shop

# 在 user 模块下添加页面
flu-cli add page profile -f user

全局选项

所有命令都支持以下选项:

  • -V, --version - 查看版本号
  • -h, --help - 查看帮助信息

示例:

bash
flu-cli --version
flu-cli add --help

配置文件

Flu-CLI 会在以下位置存储配置:

  • 缓存目录: ~/.flu-cli/cache/
  • 配置文件: ~/.flu-cli/config.json

命名规范

项目名称

  • 只能包含小写字母、数字和下划线
  • 必须以小写字母开头
  • 不能使用 Dart 关键字
bash
# ✅ 正确
my_app
todo_list
shop_2024

# ❌ 错误
MyApp        # 不能有大写字母
my-app       # 不能有连字符
123app       # 不能以数字开头
class        # 不能使用关键字

文件名称

  • 使用 snake_case
  • 添加类型后缀
bash
# Page
home_page.dart
user_list_page.dart

# Widget
custom_button_widget.dart
user_card_widget.dart

# ViewModel
home_viewmodel.dart
user_list_viewmodel.dart

# Service
api_service.dart
user_service.dart

# Model
user_model.dart
product_model.dart

类名称

  • 使用 PascalCase
  • 添加类型后缀
dart
// Page
HomePage
UserListPage

// Widget
CustomButtonWidget
UserCardWidget

// ViewModel
HomeViewModel
UserListViewModel

// Service
ApiService
UserService

// Model
User
Product

工作目录

重要: 始终在项目根目录执行 flu-cli add 命令。

bash
# ✅ 正确
cd my_app
flu-cli a page home

# ❌ 错误
cd my_app/lib
flu-cli a page home  # 会在 lib/lib/pages/ 下生成

故障排除

命令卡住

如果命令执行过程中卡住,可以:

  1. Ctrl+C 中止
  2. 运行 flu-cli cache clean 清理缓存
  3. 重新执行命令

模板拉取失败

bash
# 清理缓存后重试
flu-cli cache clean
flu-cli new my_app

# 或使用本地模板(开发环境)
flu-cli new my_app --no-cache

代码片段不生效

VSCode 扩展使用动态代码片段功能,会根据项目配置自动适配:

  1. 确保已安装 Flu CLI VSCode 扩展
  2. 打开 .dart 文件时扩展会自动激活
  3. 代码片段会根据 .flu-cli.json 配置动态显示
  4. 如果看不到代码片段,尝试重启 VSCode

更多帮助

Released under the MIT License.