flu-cli 0.0.4 → 0.0.5

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.
Files changed (2) hide show
  1. package/README.md +247 -126
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,40 +1,53 @@
1
1
  # Flu CLI 工具
2
2
 
3
- 火之夜工作室 Flutter 项目创建工具,基于 Node.js 实现的命令行工具,用于快速创建和配置 Flutter 项目。
3
+ > **flu-cli** 是一个强大的 Flutter 项目脚手架工具,可以帮助您快速创建和配置项目。
4
4
 
5
- ## 功能特点
5
+ [![npm version](https://img.shields.io/npm/v/flu-cli.svg)](https://www.npmjs.com/package/flu-cli)
6
+ [![license](https://img.shields.io/npm/l/flu-cli.svg)](https://gitee.com/tengteng_fan/flutter-cli/blob/main/LICENSE)
7
+ [![downloads](https://img.shields.io/npm/dm/flu-cli.svg)](https://www.npmjs.com/package/flu-cli)
6
8
 
7
- - **交互式命令行界面**:简化项目创建流程,引导用户完成各项配置
8
- - **多项目类型支持**:可创建应用(app)、模块(module)、包(package)和插件(plugin)四种项目类型
9
- - **丰富的模板选择**:提供四种模板类型,满足不同开发需求
10
- - **仅基础项目(only)**:仅包含Flutter官方基础项目结构
11
- - **最小模板(min)**:基础结构+路由管理+主题管理
12
- - **标准模板(normal)**:最小模板+状态管理+工具集+UI组件库
13
- - **高级模板(pro)**:标准模板+网络请求+数据缓存+示例模块
14
- - **灵活的状态管理**:支持原生setState、GetX等多种状态管理方案
15
- - **自动化配置**:自动处理包名替换、项目命名和依赖管理
16
- - **开发环境集成**:自动配置VSCode开发环境(代码风格、调试配置、扩展推荐)
17
- - **依赖包管理**:支持通过Git仓库自动集成常用工具库和网络请求库
18
- - **IDE自动打开**:创建完成后可自动在VSCode或Android Studio中打开项目
19
- - **跨平台支持**:兼容Windows、macOS和Linux操作系统
9
+ ## 📋 目录
20
10
 
21
- ## 安装
11
+ - [🚀 快速开始](#-快速开始)
12
+ - [📦 安装](#-安装)
13
+ - [🛠️ 使用方法](#️-使用方法)
14
+ - [交互式向导](#交互式向导)
15
+ - [项目模版对比](#项目模版对比)
16
+ - [命令行创建](#命令行创建)
17
+ - [📁 项目结构](#-项目结构)
18
+ - [🏃 运行与调试](#-运行与调试)
19
+ - [📚 进阶指南](#-进阶指南)
20
+ - [🔧 兼容性说明](#-兼容性说明)
22
21
 
23
- ### 全局安装
22
+ ## 🚀 快速开始
24
23
 
25
24
  ```bash
25
+ # 全局安装
26
26
  npm install -g flu-cli
27
- ```
28
27
 
29
- ### 本地安装
28
+ # 创建项目
29
+ flu-cli
30
30
 
31
- ```bash
32
- npm install flu-cli
31
+ # 或使用 npx(无需安装)
32
+ npx flu-cli
33
33
  ```
34
34
 
35
- ## 使用方法
35
+ ## 📦 安装
36
+
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` 命令。
36
45
 
37
- ### 命令行使用
46
+ ## 🛠️ 使用方法
47
+
48
+ ### 交互式向导
49
+
50
+ flu-cli 附带一个命令行设置向导,它将帮助您构建一个基本项目。安装后,您可以通过运行以下命令启动向导:
38
51
 
39
52
  ```bash
40
53
  # 如果全局安装
@@ -44,139 +57,247 @@ flu-cli
44
57
  npx flu-cli
45
58
  ```
46
59
 
47
- ### 创建新项目
60
+ 运行向导后,根据提示输入项目信息,如项目名称、包名、项目类型、模板类型、状态管理方案等。向导会自动生成项目结构并配置相关文件。
61
+
62
+ <details>
63
+ <summary>📋 向导示例(点击展开)</summary>
48
64
 
49
65
  ```bash
50
- flu-cli create
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
+ 不打开
51
97
  ```
52
98
 
53
- ### 命令行参数示例
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
+ ### 命令行创建
54
125
 
55
126
  可以直接通过命令行参数指定所有配置,无需交互式输入:
56
127
 
128
+ #### 基本语法
129
+
57
130
  ```bash
58
- # 创建应用项目(高级模板+GetX状态管理+VSCode)
59
- flu-cli create --project-type app --template-type pro --state-manager GetX --project-name my_flutter_app --package-name com.example.myapp --parent-dir ~/your projects path --ide vscode
131
+ flu-cli create [options]
132
+ ```
60
133
 
61
- # 创建模块项目(标准模板+State状态管理 + Android Studio)
62
- flu-cli create --project-type module --template-type normal --state-manager state --project-name my_flutter_module --package-name com.example.mymodule --parent-dir ~/your projects path --ide android_studio
134
+ #### 使用示例
63
135
 
64
- # 最小化模板快速创建
65
- flu-cli create --project-type app --template-type min --project-name quick_start --package-name com.example.quick --parent-dir ~/your projects path
136
+ ##### 🔥 Pro 模版(推荐)
66
137
 
67
- # 仅仅创建一个flutter项目
68
- flu-cli create --project-type app --template-type only --project-name quick_start --package-name com.example.quick --parent-dir ~/your projects path
138
+ ```bash
139
+ flu-cli create -t app -m pro -s GetX -n my_flutter_app -p com.example.myapp -d ~/projects -i vscode
69
140
  ```
70
141
 
71
- #### 参数说明
142
+ ##### 🔶 Normal 模版
72
143
 
73
- | 参数 | 说明 | 可选值 |
74
- | --project-type | 项目类型 | app, module, package, plugin |
75
- | --template-type | 模板类型 | only, min, normal, pro |
76
- | --state-manager | 状态管理方案 | state, GetX, |
77
- | --project-name | 项目名称 | 小写字母、数字和下划线组合 |
78
- | --package-name | 包名 | 类似Java包名格式,如com.example.app |
79
- | --parent-dir | 存放目录 | 绝对路径或相对路径 |
80
- | --ide | IDE选择 | vscode, android_studio, open_folder, manual |
81
- | --flutter-sdk | Flutter SDK路径 | 默认为系统环境变量中的flutter |
82
-
83
- 按照提示完成以下步骤:
84
-
85
- 1. **选择项目类型**:应用(app)、模块(module)、包(package)或插件(plugin)
86
- 2. **选择模板类型**:基础(only)、最小(min)、标准(normal)或高级(pro)
87
- 3. **选择状态管理**:根据模板类型选择合适的状态管理方案(高级模板需要)
88
- 4. **输入项目信息**:项目名称、包名和存放路径
89
- 5. **确认配置**:确认项目信息和覆盖选项
90
- 6. **选择IDE**:选择用于打开项目的IDE
91
-
92
- ## 模板详情
93
-
94
- ### 仅基础项目(only)
95
- - 包含Flutter官方创建的基础项目结构
96
- - 仅保留核心文件:`main.dart`、`pubspec.yaml`和基础目录结构
97
- - 适用于快速测试或需要完全自定义项目结构的场景
98
-
99
- ### 最小模板(min)
100
- - 基于基础项目扩展,增加以下功能:
101
- - 路由管理:使用`auto_route`实现路由配置和导航
102
- - 主题管理:支持亮色/暗色主题切换
103
- - 基础工具类:包含常用字符串、日期处理方法
104
-
105
- ### 标准模板(normal)
106
- - 基于最小模板扩展,增加以下功能:
107
- - 状态管理:根据选择集成对应状态管理库
108
- - UI组件库:基础按钮、输入框、列表项等常用组件
109
- - 网络请求:基于`dio`的基础网络请求封装
110
- - 本地存储:使用`shared_preferences`实现简单数据存储
111
-
112
- ### 高级模板(pro)
113
- - 基于标准模板扩展,增加以下功能:
114
- - 完整网络层:请求拦截、响应处理、错误统一管理
115
- - 数据缓存:实现网络数据缓存策略
116
- - 业务模块划分:按功能模块组织代码结构
117
- - 示例功能:包含登录、列表等示例页面
118
- - 依赖注入:使用`get_it`实现服务定位
119
-
120
- ## 项目结构
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
+ ```
121
147
 
148
+ ##### 🔸 Min 模版
149
+
150
+ ```bash
151
+ flu-cli create -t app -m min -n quick_start -p com.example.quick -d ~/projects
122
152
  ```
123
- flutter-cli/
124
- ├── index.js # 主入口文件
125
- ├── package.json # 项目配置
126
- ├── README.md # 项目说明文档
127
- └── lib/ # 核心功能模块
128
- ├── createProject.js # 项目创建主流程协调
129
- ├── userInteraction.js # 用户交互功能(输入、选择、确认)
130
- ├── flutterProjectCreator.js # Flutter项目创建(执行flutter create命令)
131
- ├── libCopier.js # 模板文件复制和处理
132
- ├── utils.js # 工具函数(验证、格式化、IDE打开等)
133
- └── desktopPath.js # 桌面路径获取
153
+
154
+ ##### 🔹 Only 模版
155
+
156
+ ```bash
157
+ flu-cli create -t app -m only -n quick_start -p com.example.quick -d ~/projects
134
158
  ```
135
159
 
136
- ### 核心模块说明
160
+ ##### 默认配置(使用向导)
137
161
 
138
- - **createProject.js**:协调整个项目创建流程,包括用户交互、项目初始化、模板复制和环境配置
139
- - **userInteraction.js**:提供所有交互式功能,包括获取项目类型、模板类型、状态管理、项目信息等
140
- - **flutterProjectCreator.js**:执行`flutter create`命令创建基础项目,处理不同项目类型参数
141
- - **libCopier.js**:负责模板文件复制、占位符替换和Git仓库克隆操作
142
- - **utils.js**:提供各种辅助功能,如名称验证、彩色输出、README生成和IDE自动打开
162
+ ```bash
163
+ flu-cli create
164
+ ```
165
+
166
+ #### 参数说明
167
+
168
+ | 参数 | 说明 | 可选值 | 必选 | 示例 |
169
+ | :-------------------- | :--------------- | :-------------------------------------------------- | :--- | :--------------------- |
170
+ | `-t, --project-type` | 项目类型 | `app`, `module`, `package`, `plugin` | ✅ | `-t app` |
171
+ | `-m, --template-type` | 模板类型 | `only`, `min`, `normal`, `pro` | ✅ | `-m pro` |
172
+ | `-s, --state-manager` | 状态管理方案 | `state`, `GetX`, `Riverpod` | ❌ | `-s GetX` |
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` |
179
+
180
+ > 📚 有关更多命令行用法的文档,请参阅 [CLI 参考文档](http://huozhiye.cn/flu-cli/eg/cli-des.html)。
143
181
 
144
- ## 依赖项
182
+ ## 📁 项目结构
145
183
 
146
- - inquirer: 交互式命令行界面
147
- - chalk: 终端彩色输出
148
- - commander: 命令行参数解析
149
- - ora: 终端加载动画
150
- - fs-extra: 文件系统操作增强
151
- - child_process: 执行系统命令
184
+ 以下是基于 **GetX** 的完整商业项目结构,清晰的项目结构有助于团队协作和代码维护。
152
185
 
153
- ## 开发
186
+ ```
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/` | 视图模型 | 状态管理、业务逻辑处理 |
154
227
 
155
- ### 本地开发
228
+ ## 🏃 运行与调试
229
+
230
+ ### 基本运行步骤
156
231
 
157
232
  ```bash
158
- # 克隆仓库
159
- git clone https://gitee.com/tengteng_fan/flutter-cli.git
160
- cd flutter-cli
233
+ # 1. 进入项目目录
234
+ cd /your_project_path/your_project_name
161
235
 
162
- # 安装依赖
163
- npm install
236
+ # 2. 获取依赖包
237
+ flutter pub get
164
238
 
165
- # 链接到全局
166
- npm link
239
+ # 3. 运行项目(开发模式)
240
+ flutter run
167
241
 
168
- # 测试运行
169
- flu-cli
242
+ # 4. 构建发布版本
243
+ flutter build apk # Android
244
+ flutter build ios # iOS
170
245
  ```
171
246
 
172
- ## 注意事项
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
+
275
+ ## 🔧 兼容性说明
276
+
277
+ ### 系统要求
278
+
279
+ | 环境 | 最低版本 | 推荐版本 | 状态 |
280
+ | --------------- | ------------- | ------------- | ------- |
281
+ | 🐦 **Flutter** | 3.0.0+ | 3.16.0+ | ✅ 支持 |
282
+ | 🟢 **Node.js** | 14.0.0+ | 18.0.0+ | ✅ 支持 |
283
+ | 🖥️ **操作系统** | - | - | - |
284
+ | └─ Windows | 10+ | 11 | ✅ 支持 |
285
+ | └─ macOS | 10.14+ | 13.0+ | ✅ 支持 |
286
+ | └─ Linux | Ubuntu 18.04+ | Ubuntu 22.04+ | ✅ 支持 |
287
+
288
+ ### 📱 目标平台
289
+
290
+ - ✅ **Android** 5.0+ (API 21+)
291
+ - ✅ **iOS** 11.0+
292
+ - ✅ **Web** (Chrome, Safari, Firefox)
293
+ - ✅ **Desktop** (Windows, macOS, Linux)
294
+
295
+ ---
173
296
 
174
- - 确保系统已正确安装 Flutter SDK 并添加到环境变量
175
- - 使用前可运行 `flutter doctor` 检查 Flutter 安装状态
176
- - 项目创建过程中需要网络连接以从 Git 仓库获取模板
177
- - 高级模板可能需要较长时间下载依赖,请耐心等待
178
- - 如遇权限问题,在命令前添加`sudo`(macOS/Linux)或使用管理员权限运行终端(Windows)
297
+ <div align="center">
179
298
 
180
- ## 许可证
299
+ **🎉 祝您使用 `flu-cli` 开发愉快!**
300
+ [![Gitee Stars](https://gitee.com/tengteng_fan/flutter-cli/badge/star.svg?theme=dark)](https://gitee.com/tengteng_fan/flutter-cli)
301
+ [![Gitee Forks](https://gitee.com/tengteng_fan/flutter-cli/badge/fork.svg?theme=dark)](https://gitee.com/tengteng_fan/flutter-cli)
181
302
 
182
- MIT
303
+ </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flu-cli",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "火之夜工作室 Flutter 项目创建工具",
5
5
  "main": "index.js",
6
6
  "type": "module",