flu-cli 0.0.5 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLI.md +349 -0
- package/README.md +59 -276
- package/config/dev.config.js +56 -0
- package/config/templates.js +147 -0
- package/index.js +128 -81
- package/lib/commands/add.js +472 -0
- package/lib/commands/cache.js +99 -0
- package/lib/commands/completion.js +94 -0
- package/lib/commands/generate.js +26 -0
- package/lib/commands/newClack.js +396 -0
- package/lib/commands/snippets.js +39 -0
- package/lib/commands/templates.js +84 -0
- package/lib/generators/component_generator.js +93 -0
- package/lib/generators/model_generator.js +303 -0
- package/lib/generators/module_generator.js +141 -0
- package/lib/generators/page_generator.js +322 -0
- package/lib/generators/project_generator.js +96 -0
- package/lib/generators/service_generator.js +408 -0
- package/lib/generators/state_manager_generator.js +402 -0
- package/lib/generators/viewmodel_generator.js +115 -0
- package/lib/generators/widget_generator.js +104 -0
- package/lib/templates/templateCopier.js +296 -0
- package/lib/templates/templateManager.js +191 -0
- package/lib/utils/config.js +99 -0
- package/lib/utils/flutterHelper.js +85 -0
- package/lib/utils/index_updater.js +69 -0
- package/lib/utils/logger.js +57 -0
- package/lib/utils/project_detector.js +227 -0
- package/lib/utils/snippet_loader.js +32 -0
- package/lib/utils/string_helper.js +56 -0
- package/lib/utils/templateSelectorEnquirer.js +200 -0
- package/package.json +31 -6
- package/release.sh +107 -0
- package/scripts/e2e-state-tests.js +116 -0
- package/scripts/sync-base-to-templates.js +108 -0
- package/scripts/workspace-clone-all.sh +101 -0
- package/scripts/workspace-status-all.sh +112 -0
- package/templates/README.md +138 -0
- package/templates/base_files/base_list_page.dart.template +174 -0
- package/templates/base_files/base_list_viewmodel.dart.template +134 -0
- package/templates/base_files/base_page.dart.template +251 -0
- package/templates/base_files/base_viewmodel.dart.template +77 -0
- package/templates/base_files/theme/status_views_theme.dart.template +46 -0
- package/templates/snippets/dart.code-snippets +487 -0
- package/lib/createProject.js +0 -220
- package/lib/flutterProjectCreator.js +0 -80
- package/lib/libCopier.js +0 -368
- package/lib/userInteraction.js +0 -274
- package/lib/utils.js +0 -200
- package/publish.sh +0 -29
package/CLI.md
ADDED
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
# Flu-CLI v2 命令参考
|
|
2
|
+
|
|
3
|
+
> Flutter MVVM 脚手架工具 - 快速生成项目和代码
|
|
4
|
+
|
|
5
|
+
## 快速开始
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 创建新项目
|
|
9
|
+
flu-cli new my_app
|
|
10
|
+
|
|
11
|
+
# 添加页面
|
|
12
|
+
flu-cli add page home
|
|
13
|
+
|
|
14
|
+
# 查看帮助
|
|
15
|
+
flu-cli --help
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 命令列表
|
|
19
|
+
|
|
20
|
+
### 1. `new` - 创建项目
|
|
21
|
+
|
|
22
|
+
创建一个新的 Flutter 项目,支持多种模板和状态管理器。
|
|
23
|
+
|
|
24
|
+
**用法:**
|
|
25
|
+
```bash
|
|
26
|
+
flu-cli new [项目名称] [选项]
|
|
27
|
+
flu-cli n [项目名称] # 简写
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**选项:**
|
|
31
|
+
- `-t, --template <type>` - 模板类型: `lite`, `modular`, `clean`
|
|
32
|
+
- `-s, --state <type>` - 状态管理器: `default`, `provider`, `getx`, `riverpod`
|
|
33
|
+
- `-d, --dir <path>` - 项目存放目录(默认:当前目录)
|
|
34
|
+
- `--no-cache` - 不使用缓存,强制从 Git 拉取
|
|
35
|
+
- `--remote` - 使用远程 Gitee 模板(默认使用本地模板)
|
|
36
|
+
|
|
37
|
+
**示例:**
|
|
38
|
+
```bash
|
|
39
|
+
# 交互式创建(推荐)
|
|
40
|
+
flu-cli new
|
|
41
|
+
|
|
42
|
+
# 指定项目名和模板
|
|
43
|
+
flu-cli new my_app -t lite
|
|
44
|
+
|
|
45
|
+
# 指定状态管理器
|
|
46
|
+
flu-cli new my_app -s getx
|
|
47
|
+
|
|
48
|
+
# 完整配置
|
|
49
|
+
flu-cli new my_app -t modular -s provider -d ~/projects
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### 2. `add` - 添加组件
|
|
55
|
+
|
|
56
|
+
在当前项目中添加各种代码组件。
|
|
57
|
+
|
|
58
|
+
**用法:**
|
|
59
|
+
```bash
|
|
60
|
+
flu-cli add <类型> <名称> [选项]
|
|
61
|
+
flu-cli a <类型> <名称> # 简写
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**支持的类型及别名:**
|
|
65
|
+
|
|
66
|
+
| 类型 | 别名 | 说明 |
|
|
67
|
+
|------|------|------|
|
|
68
|
+
| `page` | `p` | 页面组件 |
|
|
69
|
+
| `widget` | `w` | 通用组件 |
|
|
70
|
+
| `component` | `c` | 业务组件 |
|
|
71
|
+
| `viewmodel` | `v` | ViewModel |
|
|
72
|
+
| `service` | `s` | 服务层 |
|
|
73
|
+
| `model` | `m` | 数据模型 |
|
|
74
|
+
| `module` | `mod` | 完整功能模块 |
|
|
75
|
+
|
|
76
|
+
**选项:**
|
|
77
|
+
- `-f, --feature <name>` - 所属功能模块(仅 modular/clean 模式)
|
|
78
|
+
- `--stateful` - 创建 StatefulWidget
|
|
79
|
+
- `--stateless` - 强制创建 StatelessWidget
|
|
80
|
+
- `--list-page` - 创建列表页 (BaseListPage)
|
|
81
|
+
- `--no-vm` - 不生成 ViewModel(仅 page 类型)
|
|
82
|
+
- `--type <type>` - Service 类型: `api`, `storage`, `auth`(仅 service 类型)
|
|
83
|
+
- `--json <file>` - 从 JSON 文件生成(仅 model 类型)
|
|
84
|
+
- `--list` - 查看支持的类型列表
|
|
85
|
+
|
|
86
|
+
**示例:**
|
|
87
|
+
```bash
|
|
88
|
+
# 添加页面(自动生成 ViewModel)
|
|
89
|
+
flu-cli add page home
|
|
90
|
+
flu-cli add p home # 简写
|
|
91
|
+
|
|
92
|
+
# 添加列表页
|
|
93
|
+
flu-cli add page user_list --list-page
|
|
94
|
+
|
|
95
|
+
# 添加无状态页面
|
|
96
|
+
flu-cli add page about --stateless --no-vm
|
|
97
|
+
|
|
98
|
+
# 添加组件
|
|
99
|
+
flu-cli add widget custom_button
|
|
100
|
+
flu-cli add w custom_button # 简写
|
|
101
|
+
|
|
102
|
+
# 添加 Service
|
|
103
|
+
flu-cli add service api --type api
|
|
104
|
+
flu-cli add s auth --type auth # 简写 + 指定类型
|
|
105
|
+
|
|
106
|
+
# 添加 Model
|
|
107
|
+
flu-cli add model user
|
|
108
|
+
flu-cli add m user # 简写
|
|
109
|
+
|
|
110
|
+
# 在功能模块下添加(modular/clean 模式)
|
|
111
|
+
flu-cli add page product -f shop
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### 3. `templates` - 模板管理
|
|
117
|
+
|
|
118
|
+
查看可用模板列表或指定模板的详细信息。
|
|
119
|
+
|
|
120
|
+
**用法:**
|
|
121
|
+
```bash
|
|
122
|
+
flu-cli templates [模板名称]
|
|
123
|
+
flu-cli t [模板名称] # 简写
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**示例:**
|
|
127
|
+
```bash
|
|
128
|
+
# 查看所有模板
|
|
129
|
+
flu-cli templates
|
|
130
|
+
|
|
131
|
+
# 查看指定模板详情
|
|
132
|
+
flu-cli templates lite
|
|
133
|
+
flu-cli t modular # 简写
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### 4. `generate-sm` - 生成状态管理代码
|
|
139
|
+
|
|
140
|
+
为现有项目生成状态管理适配与配置。
|
|
141
|
+
|
|
142
|
+
**用法:**
|
|
143
|
+
```bash
|
|
144
|
+
flu-cli generate-sm <类型>
|
|
145
|
+
flu-cli g <类型> # 简写
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**选项:**
|
|
149
|
+
- `-d, --dir <path>` - 项目目录(默认:当前目录)
|
|
150
|
+
- `-m, --module <name>` - 模块名称(modular/clean 支持分模块适配器)
|
|
151
|
+
|
|
152
|
+
**示例:**
|
|
153
|
+
```bash
|
|
154
|
+
# 生成 Provider 状态管理
|
|
155
|
+
flu-cli generate-sm provider
|
|
156
|
+
|
|
157
|
+
# 生成 GetX 状态管理
|
|
158
|
+
flu-cli g getx # 简写
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
### 5. `sync-snippets` - 同步代码片段
|
|
164
|
+
|
|
165
|
+
将最新的标准 VS Code 代码片段同步到当前项目。
|
|
166
|
+
|
|
167
|
+
**用法:**
|
|
168
|
+
```bash
|
|
169
|
+
flu-cli sync-snippets
|
|
170
|
+
flu-cli sync # 简写
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
**说明:**
|
|
174
|
+
- 该命令会覆盖项目的 `.vscode/dart.code-snippets` 文件。
|
|
175
|
+
- 新项目创建时会自动同步,无需手动执行。
|
|
176
|
+
|
|
177
|
+
**示例:**
|
|
178
|
+
```bash
|
|
179
|
+
# 同步标准代码片段
|
|
180
|
+
flu-cli sync-snippets
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
### 6. `update-templates` - 更新模板缓存
|
|
186
|
+
|
|
187
|
+
更新本地模板缓存到最新版本。
|
|
188
|
+
|
|
189
|
+
**用法:**
|
|
190
|
+
```bash
|
|
191
|
+
flu-cli update-templates [模板名称]
|
|
192
|
+
flu-cli u [模板名称] # 简写
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**选项:**
|
|
196
|
+
- `--force` - 强制刷新并清理未跟踪文件
|
|
197
|
+
|
|
198
|
+
**示例:**
|
|
199
|
+
```bash
|
|
200
|
+
# 更新所有模板
|
|
201
|
+
flu-cli update-templates
|
|
202
|
+
|
|
203
|
+
# 更新指定模板
|
|
204
|
+
flu-cli u lite # 简写
|
|
205
|
+
|
|
206
|
+
# 强制刷新
|
|
207
|
+
flu-cli update-templates --force
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
### 7. `cache` - 缓存管理
|
|
213
|
+
|
|
214
|
+
管理本地模板缓存。
|
|
215
|
+
|
|
216
|
+
**用法:**
|
|
217
|
+
```bash
|
|
218
|
+
flu-cli cache <action>
|
|
219
|
+
flu-cli c <action> # 简写
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**支持的操作:**
|
|
223
|
+
- `clean` - 清理缓存
|
|
224
|
+
|
|
225
|
+
**示例:**
|
|
226
|
+
```bash
|
|
227
|
+
# 清理缓存
|
|
228
|
+
flu-cli cache clean
|
|
229
|
+
flu-cli c clean # 简写
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### 8. `completion` - 自动补全
|
|
235
|
+
|
|
236
|
+
生成 Shell 自动补全脚本(支持 Bash/Zsh)。
|
|
237
|
+
|
|
238
|
+
**用法:**
|
|
239
|
+
```bash
|
|
240
|
+
flu-cli completion
|
|
241
|
+
flu-cli comp # 简写
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
**安装方法:**
|
|
245
|
+
```bash
|
|
246
|
+
# Zsh
|
|
247
|
+
flu-cli completion >> ~/.zshrc
|
|
248
|
+
source ~/.zshrc
|
|
249
|
+
|
|
250
|
+
# Bash
|
|
251
|
+
flu-cli completion >> ~/.bashrc
|
|
252
|
+
source ~/.bashrc
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 常见工作流
|
|
258
|
+
|
|
259
|
+
### 创建新项目
|
|
260
|
+
```bash
|
|
261
|
+
flu-cli new my_app
|
|
262
|
+
cd my_app
|
|
263
|
+
flutter pub get
|
|
264
|
+
flu-cli add page home
|
|
265
|
+
flu-cli add page user_list --list-page
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### 在现有项目中使用
|
|
269
|
+
```bash
|
|
270
|
+
cd existing_project
|
|
271
|
+
|
|
272
|
+
# 同步代码片段
|
|
273
|
+
flu-cli sync-snippets
|
|
274
|
+
|
|
275
|
+
# 添加组件
|
|
276
|
+
flu-cli add page settings
|
|
277
|
+
flu-cli add service api --type api
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Modular 架构项目
|
|
281
|
+
```bash
|
|
282
|
+
flu-cli new my_app -t modular
|
|
283
|
+
cd my_app
|
|
284
|
+
|
|
285
|
+
# 在 shop 模块下添加页面
|
|
286
|
+
flu-cli add page product -f shop
|
|
287
|
+
flu-cli add page cart -f shop
|
|
288
|
+
|
|
289
|
+
# 在 user 模块下添加页面
|
|
290
|
+
flu-cli add page profile -f user
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## 全局选项
|
|
296
|
+
|
|
297
|
+
所有命令都支持以下选项:
|
|
298
|
+
- `-V, --version` - 查看版本号
|
|
299
|
+
- `-h, --help` - 查看帮助信息
|
|
300
|
+
|
|
301
|
+
**示例:**
|
|
302
|
+
```bash
|
|
303
|
+
flu-cli --version
|
|
304
|
+
flu-cli add --help
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## 配置文件
|
|
310
|
+
|
|
311
|
+
Flu-CLI 会在以下位置存储配置:
|
|
312
|
+
- **缓存目录**: `~/.flu-cli/cache/`
|
|
313
|
+
- **配置文件**: `~/.flu-cli/config.json`
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 故障排除
|
|
318
|
+
|
|
319
|
+
### 命令卡住
|
|
320
|
+
如果命令执行过程中卡住,可以:
|
|
321
|
+
1. 按 `Ctrl+C` 中止
|
|
322
|
+
2. 运行 `flu-cli cache clean` 清理缓存
|
|
323
|
+
3. 重新执行命令
|
|
324
|
+
|
|
325
|
+
### 模板拉取失败
|
|
326
|
+
```bash
|
|
327
|
+
# 清理缓存后重试
|
|
328
|
+
flu-cli cache clean
|
|
329
|
+
flu-cli new my_app
|
|
330
|
+
|
|
331
|
+
# 或使用本地模板(开发环境)
|
|
332
|
+
flu-cli new my_app --no-cache
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### 代码片段不生效
|
|
336
|
+
```bash
|
|
337
|
+
# 重新同步代码片段
|
|
338
|
+
flu-cli sync-snippets
|
|
339
|
+
|
|
340
|
+
# 重启 VS Code 后生效
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## 更多帮助
|
|
346
|
+
|
|
347
|
+
- 查看具体命令帮助:`flu-cli <command> --help`
|
|
348
|
+
- 项目文档:[flu-cli 文档站](https://your-docs-url)
|
|
349
|
+
- 问题反馈:[GitHub Issues](https://github.com/your-repo/issues)
|
package/README.md
CHANGED
|
@@ -1,303 +1,86 @@
|
|
|
1
|
-
#
|
|
1
|
+
# flu-cli v2.0
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 🚀 **活跃开发中** - Flutter MVVM 脚手架工具
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
[](https://gitee.com/tengteng_fan/flutter-cli/blob/main/LICENSE)
|
|
7
|
-
[](https://www.npmjs.com/package/flu-cli)
|
|
5
|
+
## ✨ 特性
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- [📁 项目结构](#-项目结构)
|
|
18
|
-
- [🏃 运行与调试](#-运行与调试)
|
|
19
|
-
- [📚 进阶指南](#-进阶指南)
|
|
20
|
-
- [🔧 兼容性说明](#-兼容性说明)
|
|
21
|
-
|
|
22
|
-
## 🚀 快速开始
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
# 全局安装
|
|
26
|
-
npm install -g flu-cli
|
|
27
|
-
|
|
28
|
-
# 创建项目
|
|
29
|
-
flu-cli
|
|
30
|
-
|
|
31
|
-
# 或使用 npx(无需安装)
|
|
32
|
-
npx flu-cli
|
|
33
|
-
```
|
|
7
|
+
- 🎯 **交互式创建** - `flu new` 命令提供友好的交互式体验
|
|
8
|
+
- 🔧 **代码生成** - `flu add` 快速生成页面、组件、服务等(支持别名)
|
|
9
|
+
- 📦 **多种模板** - lite、modular、clean 三种架构模板
|
|
10
|
+
- 🎮 **状态管理** - 支持 default、provider、getx、riverpod
|
|
11
|
+
- 📝 **基于 Snippets** - 可自定义 VSCode 代码片段
|
|
12
|
+
- 🎨 **列表页支持** - `--list-page` 自动生成 Page/ViewModel/Model
|
|
13
|
+
- 🚀 **智能补全** - Shell 自动补全(Zsh/Bash)
|
|
14
|
+
- 🌏 **中文友好** - 全中文提示和文档
|
|
34
15
|
|
|
35
16
|
## 📦 安装
|
|
36
17
|
|
|
37
|
-
您可以通过以下方式安装 flu-cli:
|
|
38
|
-
|
|
39
|
-
| 安装方式 | NPM | PNPM | Yarn |
|
|
40
|
-
| -------------- | ------------------------ | --------------------- | ------------------------- |
|
|
41
|
-
| **全局安装** | `npm install -g flu-cli` | `pnpm add -g flu-cli` | `yarn global add flu-cli` |
|
|
42
|
-
| **项目内安装** | `npm install flu-cli` | `pnpm add flu-cli` | `yarn add flu-cli` |
|
|
43
|
-
|
|
44
|
-
> 💡 **推荐使用全局安装**,这样可以在任何地方使用 `flu-cli` 命令。
|
|
45
|
-
|
|
46
|
-
## 🛠️ 使用方法
|
|
47
|
-
|
|
48
|
-
### 交互式向导
|
|
49
|
-
|
|
50
|
-
flu-cli 附带一个命令行设置向导,它将帮助您构建一个基本项目。安装后,您可以通过运行以下命令启动向导:
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
# 如果全局安装
|
|
54
|
-
flu-cli
|
|
55
|
-
|
|
56
|
-
# 或者使用 npx
|
|
57
|
-
npx flu-cli
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
运行向导后,根据提示输入项目信息,如项目名称、包名、项目类型、模板类型、状态管理方案等。向导会自动生成项目结构并配置相关文件。
|
|
61
|
-
|
|
62
|
-
<details>
|
|
63
|
-
<summary>📋 向导示例(点击展开)</summary>
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
欢迎使用 火之夜工作室 Flutter 项目创建工具
|
|
67
|
-
|
|
68
|
-
? 请选择项目类型: (Use arrow keys)
|
|
69
|
-
❯ 应用 (app)
|
|
70
|
-
模块 (module)
|
|
71
|
-
原生插件 (plugin)
|
|
72
|
-
插件 (package)
|
|
73
|
-
|
|
74
|
-
? 请选择项目模版: (Use arrow keys)
|
|
75
|
-
only (main.dart)
|
|
76
|
-
min (项目结构、路由管理、主题管理、状态管理、工具集)
|
|
77
|
-
normal (项目结构、路由管理、主题管理、状态管理、工具集、UI 组件库)
|
|
78
|
-
❯ pro (项目结构、路由管理、主题管理、状态管理、工具集、UI 组件库、网络请求、数据缓存、示例模块)
|
|
79
|
-
|
|
80
|
-
? 请选择状态管理: (Use arrow keys)
|
|
81
|
-
❯ state (State)
|
|
82
|
-
get (GetX)
|
|
83
|
-
|
|
84
|
-
? 请输入新项目名称(小写字母、数字和下划线): (hzy_example_project)
|
|
85
|
-
? 请输入 Flutter SDK 路径(留空使用系统默认):
|
|
86
|
-
? 请输入包名: (com.example.hzy_example_project)
|
|
87
|
-
? 请输入项目存放路径: (默认: 当前目录)
|
|
88
|
-
|
|
89
|
-
⚠️ 警告: 目标目录 hzy_example_project 已存在!
|
|
90
|
-
? 是否覆盖? (y/N)
|
|
91
|
-
|
|
92
|
-
? 请选择要打开项目的 IDE: (Use arrow keys)
|
|
93
|
-
❯ Visual Studio Code
|
|
94
|
-
Android Studio
|
|
95
|
-
打开文件夹
|
|
96
|
-
不打开
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
</details>
|
|
100
|
-
|
|
101
|
-
### 项目模版对比
|
|
102
|
-
|
|
103
|
-
| 功能特性 | 🔹 only | 🔸 min | 🔶 normal | 🔥 pro |
|
|
104
|
-
| :----------------------- | :-----: | :----: | :-------: | :----: |
|
|
105
|
-
| **基础入口 (main.dart)** | ✅ | ✅ | ✅ | ✅ |
|
|
106
|
-
| **标准项目结构** | ❌ | ✅ | ✅ | ✅ |
|
|
107
|
-
| **路由管理系统** | ❌ | ✅ | ✅ | ✅ |
|
|
108
|
-
| **主题管理系统** | ❌ | ✅ | ✅ | ✅ |
|
|
109
|
-
| **状态管理方案** | ❌ | ✅ | ✅ | ✅ |
|
|
110
|
-
| **开发工具集** | ❌ | ✅ | ✅ | ✅ |
|
|
111
|
-
| **UI 组件库** | ❌ | ❌ | ✅ | ✅ |
|
|
112
|
-
| **网络请求框架** | ❌ | ❌ | ❌ | ✅ |
|
|
113
|
-
| **数据持久化** | ❌ | ❌ | ❌ | ✅ |
|
|
114
|
-
|
|
115
|
-
#### 模版说明
|
|
116
|
-
|
|
117
|
-
- 🔹 **only**:仅保留最小运行单元(适合验证核心功能)
|
|
118
|
-
- 🔸 **min**:三大基石(路由/主题/状态管理)
|
|
119
|
-
- 🔶 **normal**:增加 UI 组件库(提升开发效率)
|
|
120
|
-
- 🔥 **pro**:完整解决方案(含网络层+数据持久化)
|
|
121
|
-
|
|
122
|
-
> 📖 想了解更多项目模版区别,请查看 [项目模版详细说明](http://huozhiye.cn/flu-cli/guide/project-template.html)。
|
|
123
|
-
|
|
124
|
-
### 命令行创建
|
|
125
|
-
|
|
126
|
-
可以直接通过命令行参数指定所有配置,无需交互式输入:
|
|
127
|
-
|
|
128
|
-
#### 基本语法
|
|
129
|
-
|
|
130
18
|
```bash
|
|
131
|
-
flu-cli
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
#### 使用示例
|
|
135
|
-
|
|
136
|
-
##### 🔥 Pro 模版(推荐)
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
flu-cli create -t app -m pro -s GetX -n my_flutter_app -p com.example.myapp -d ~/projects -i vscode
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
##### 🔶 Normal 模版
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
|
-
flu-cli create -t module -m normal -s state -n my_flutter_module -p com.example.mymodule -d ~/projects -i android_studio
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
##### 🔸 Min 模版
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
flu-cli create -t app -m min -n quick_start -p com.example.quick -d ~/projects
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
##### 🔹 Only 模版
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
flu-cli create -t app -m only -n quick_start -p com.example.quick -d ~/projects
|
|
19
|
+
npm install -g flu-cli
|
|
158
20
|
```
|
|
159
21
|
|
|
160
|
-
|
|
22
|
+
## 🚀 快速开始
|
|
161
23
|
|
|
162
24
|
```bash
|
|
163
|
-
|
|
164
|
-
|
|
25
|
+
# 创建新项目
|
|
26
|
+
flu-cli new my_app
|
|
27
|
+
# 或使用别名
|
|
28
|
+
flu n my_app
|
|
165
29
|
|
|
166
|
-
|
|
30
|
+
# 指定模板和状态管理
|
|
31
|
+
flu n my_app -t modular -s getx
|
|
167
32
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
| `-n, --project-name` | 项目名称 | 小写字母、数字和下划线组合 | ✅ | `-n my_app` |
|
|
174
|
-
| `-p, --package-name` | 包名 | 类似 Java 包名格式 | ✅ | `-p com.example.myapp` |
|
|
175
|
-
| `-d, --parent-dir` | 存放目录 | 绝对路径或相对路径 | ❌ | `-d ~/projects` |
|
|
176
|
-
| `-i, --ide` | IDE 选择 | `vscode`, `android_studio`, `open_folder`, `manual` | ❌ | `-i vscode` |
|
|
177
|
-
| `-f, --flutter-sdk` | Flutter SDK 路径 | 默认为系统环境变量中的 flutter | ❌ | `-f /path/to/flutter` |
|
|
178
|
-
| `-h, --help` | 显示帮助信息 | - | ❌ | `--help` |
|
|
33
|
+
# 添加页面(自动生成 ViewModel)
|
|
34
|
+
cd my_app
|
|
35
|
+
flu add page home
|
|
36
|
+
# 或使用别名
|
|
37
|
+
flu a p home
|
|
179
38
|
|
|
180
|
-
|
|
39
|
+
# 添加列表页(自动生成 Page + ViewModel + Model)
|
|
40
|
+
flu a p user_list --list-page
|
|
181
41
|
|
|
182
|
-
|
|
42
|
+
# 添加服务
|
|
43
|
+
flu a s api --type api
|
|
183
44
|
|
|
184
|
-
|
|
45
|
+
# 同步代码片段
|
|
46
|
+
flu sync-snippets
|
|
185
47
|
|
|
48
|
+
# 生成自动补全脚本
|
|
49
|
+
flu-cli completion >> ~/.zshrc && source ~/.zshrc
|
|
186
50
|
```
|
|
187
|
-
📦 your_project_name/
|
|
188
|
-
├── 📁 .vscode/ # VS Code 配置文件
|
|
189
|
-
│ ├── 📄 extensions.json # 插件推荐
|
|
190
|
-
│ ├── 📄 launch.json # 调试配置
|
|
191
|
-
│ ├── 📄 settings.json # 编辑器设置
|
|
192
|
-
│ └── 📄 dart.code-snippets # 代码片段
|
|
193
|
-
├── 📁 assets/ # 静态资源文件
|
|
194
|
-
│ ├── 📁 fonts/ # 字体文件
|
|
195
|
-
│ ├── 📁 images/ # 图片资源
|
|
196
|
-
│ └── 📁 json/ # 本地数据
|
|
197
|
-
├── 📁 lib/ # 项目核心代码
|
|
198
|
-
│ ├── 📁 common/ # 公共组件和工具
|
|
199
|
-
│ ├── 📁 config/ # 应用配置
|
|
200
|
-
│ ├── 📁 eg_module/ # 示例模块
|
|
201
|
-
│ ├── 📁 init/ # 初始化逻辑
|
|
202
|
-
│ ├── 📄 main.dart # 应用入口文件
|
|
203
|
-
│ ├── 📁 models/ # 数据模型
|
|
204
|
-
│ ├── 📁 network/ # 网络请求
|
|
205
|
-
│ ├── 📁 pages/ # 页面文件
|
|
206
|
-
│ ├── 📁 tools/ # 工具类
|
|
207
|
-
│ ├── 📁 vm/ # 视图模型
|
|
208
|
-
│ └── 📁 widgets/ # UI 组件
|
|
209
|
-
├── 📄 pubspec.yaml # 项目配置文件
|
|
210
|
-
├── 📄 analysis_options.yaml # 代码分析配置
|
|
211
|
-
└── 📄 README.md # 项目说明文档
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
### 📋 目录说明
|
|
215
|
-
|
|
216
|
-
| 目录/文件 | 说明 | 用途 |
|
|
217
|
-
| ----------------- | ------------ | ---------------------------------- |
|
|
218
|
-
| 📁 `.vscode/` | VS Code 配置 | 包含编辑器配置、调试设置和代码片段 |
|
|
219
|
-
| 📁 `assets/` | 静态资源 | 存放图片、字体、本地数据等资源文件 |
|
|
220
|
-
| 📁 `lib/common/` | 公共模块 | 公共组件、工具类、常量定义 |
|
|
221
|
-
| 📁 `lib/config/` | 应用配置 | 环境配置、主题配置、路由配置 |
|
|
222
|
-
| 📁 `lib/network/` | 网络层 | HTTP 请求、API 接口、数据处理 |
|
|
223
|
-
| 📁 `lib/pages/` | 页面 | 应用的各个页面和子页面 |
|
|
224
|
-
| 📁 `lib/widgets/` | UI 组件 | 可复用的自定义 Widget 组件 |
|
|
225
|
-
| 📁 `lib/models/` | 数据模型 | 实体类、数据传输对象 |
|
|
226
|
-
| 📁 `lib/vm/` | 视图模型 | 状态管理、业务逻辑处理 |
|
|
227
|
-
|
|
228
|
-
## 🏃 运行与调试
|
|
229
|
-
|
|
230
|
-
### 基本运行步骤
|
|
231
|
-
|
|
232
|
-
```bash
|
|
233
|
-
# 1. 进入项目目录
|
|
234
|
-
cd /your_project_path/your_project_name
|
|
235
|
-
|
|
236
|
-
# 2. 获取依赖包
|
|
237
|
-
flutter pub get
|
|
238
|
-
|
|
239
|
-
# 3. 运行项目(开发模式)
|
|
240
|
-
flutter run
|
|
241
|
-
|
|
242
|
-
# 4. 构建发布版本
|
|
243
|
-
flutter build apk # Android
|
|
244
|
-
flutter build ios # iOS
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
### 🛠️ 开发工具推荐
|
|
248
|
-
|
|
249
|
-
| 工具 | 用途 | 推荐指数 |
|
|
250
|
-
| ------------------------ | -------------- | ---------- |
|
|
251
|
-
| 🔧 **VS Code** | 轻量级编辑器 | ⭐⭐⭐⭐⭐ |
|
|
252
|
-
| 🔧 **Android Studio** | 功能完整的 IDE | ⭐⭐⭐⭐ |
|
|
253
|
-
| 🔧 **Flutter Inspector** | UI 调试工具 | ⭐⭐⭐⭐⭐ |
|
|
254
|
-
| 🔧 **Dart DevTools** | 性能分析工具 | ⭐⭐⭐⭐ |
|
|
255
|
-
|
|
256
|
-
## 📚 进阶指南
|
|
257
|
-
|
|
258
|
-
🎉 恭喜您完成了 `flu-cli` 的基础配置!
|
|
259
|
-
|
|
260
|
-
### 🚀 推荐后续操作
|
|
261
|
-
|
|
262
|
-
- 📖 **深入学习**:查看 [高级特性文档](http://huozhiye.cn/flu-cli/tutorial/base-normal-ui.html)
|
|
263
|
-
- 🤝 **项目模版**:访问 [仓库](https://gitee.com/tengteng_fan/hzy_basic_project)
|
|
264
|
-
- 📚 **官方文档**:[flu-cli 完整文档](http://huozhiye.cn/flu-cli/)
|
|
265
|
-
- 💬 **社区支持**:加入开发者交流群
|
|
266
|
-
|
|
267
|
-
### 📖 相关资源
|
|
268
|
-
|
|
269
|
-
- [Flutter 官方文档](https://flutter.dev/docs)
|
|
270
|
-
- [GetX 状态管理](https://github.com/jonataslaw/getx)
|
|
271
|
-
- [Dart 语言指南](https://dart.dev/guides)
|
|
272
|
-
|
|
273
|
-
---
|
|
274
51
|
|
|
275
|
-
##
|
|
52
|
+
## 📚 命令别名
|
|
276
53
|
|
|
277
|
-
###
|
|
54
|
+
### add 类型别名
|
|
55
|
+
- `p` = page
|
|
56
|
+
- `w` = widget
|
|
57
|
+
- `c` = component
|
|
58
|
+
- `v` = viewmodel
|
|
59
|
+
- `s` = service
|
|
60
|
+
- `m` = model
|
|
61
|
+
- `mod` = module
|
|
278
62
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
63
|
+
### 顶级命令别名
|
|
64
|
+
- `n` = new
|
|
65
|
+
- `a` = add
|
|
66
|
+
- `t` = templates
|
|
67
|
+
- `g` = generate-sm
|
|
68
|
+
- `u` = update-templates
|
|
69
|
+
- `c` = cache
|
|
70
|
+
- `sync` = sync-snippets
|
|
71
|
+
- `comp` = completion
|
|
287
72
|
|
|
288
|
-
|
|
73
|
+
## 📚 文档
|
|
289
74
|
|
|
290
|
-
-
|
|
291
|
-
-
|
|
292
|
-
- ✅ **Web** (Chrome, Safari, Firefox)
|
|
293
|
-
- ✅ **Desktop** (Windows, macOS, Linux)
|
|
75
|
+
- [CLI 命令参考](./CLI.md) - 详细命令说明
|
|
76
|
+
- [完整文档](http://huozhiye.cn/flu-cli/) - 主文档站
|
|
294
77
|
|
|
295
|
-
|
|
78
|
+
## 🔗 相关链接
|
|
296
79
|
|
|
297
|
-
|
|
80
|
+
- [模板对比](http://huozhiye.cn/flu-cli/guide/templates/template-comparison)
|
|
81
|
+
- [最佳实践](http://huozhiye.cn/flu-cli/best-practices/custom-templates)
|
|
82
|
+
- [从 V1 迁移](http://huozhiye.cn/flu-cli/examples/migration)
|
|
298
83
|
|
|
299
|
-
|
|
300
|
-
[](https://gitee.com/tengteng_fan/flutter-cli)
|
|
301
|
-
[](https://gitee.com/tengteng_fan/flutter-cli)
|
|
84
|
+
## 📄 许可
|
|
302
85
|
|
|
303
|
-
|
|
86
|
+
MIT License - Copyright © 2025 火之夜工作室
|