我希望在新项目中使用 GetX 5 。但问题是 get_cli 安装的是 GetX 4 ,并且为 Binding 类生成了一个过时的模板。
这不是一个大问题,可以手动修复,但我同时也有一些小的改进一直想实现,因此我决定派生(fork)get_cli 并创建一个新包。

隆重推出 get_cli5!
变更
已进行以下更改:
-
get_cli5 现在安装 GetX 版本 5.0.0-release-candidate-9.3.2 (目前最新的候选发布版本),而不是最新的稳定版本(4.7.2)。由于尖角号(caret)语法不适用于 RC 版本,因此如果将来有新版本发布,则需要在
pubspec.yaml中手动修复。 -
移除了之前用于选择 GetXPattern (MVVM) 和 Clean 架构的对话框。现在它始终是 GetXPattern。
-
为了更好地遵循 MVVM 的命名约定,文件夹
modules已重命名为presentation。
原来是这样的:
kotlin
lib\
app\
data\
modules\
现在是这样的:
kotlin
lib\
app\
data\
presentation\
- 移除了
pubspec.yaml中的sub_folder: false选项。现在,默认情况下采用扁平结构,如下所示:
arduino
home\
home_binding.dart
home_controller.dart
home_view.dart
无需额外的文件夹选项。
Binding类的模板已更新,以适应 GetX5。
现在,取代以下内容的是:
dart
class HomeBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut<HomeController>(
() => HomeController(),
);
}
}
会生成如下的代码:
dart
class HomeBinding extends Binding {
@override
List<Bind> dependencies() {
return [
Bind.put<HomeController>(
HomeController(),
)
];
}
}
- 新增了
create service命令。 (请阅读下文了解详情。)
安装
首先,停用 get_cli (如果它已被激活):
bash
dart pub global deactivate get_cli
然后,激活 get_cli5:
bash
dart pub global activate get_cli5
用法
初始化项目
- 使用
View -> Command Palette...或在终端运行flutter create来创建一个 Flutter 项目。 - 在终端运行
get init命令。它将生成以下文件夹和文件:

- 向项目中添加视图 (View)
命令 get create page:settings 将会在 presentation 文件夹内部生成一个名为 settings 的文件夹。

同时,routes 文件夹内的路由也会随之更新。
如果想要的名称是 "game settings",请使用:
Bash
sql
get create page:game-settings
命令。
3. 向项目中添加服务 (Service)
要在 data 文件夹中创建 AuthService,请使用:
bash
get create service:auth
命令。它将生成一个带有工厂单例(factory singleton)的 auth_service.dart 文件。
dart
class AuthService {
AuthService._();
static final _instance = AuthService._();
factory AuthService() {
return _instance;
}
}
要在 data/auth 文件夹中创建 AuthService,请使用:
bash
get create service:auth on auth
命令。如果 auth 文件夹不存在,它将被创建。
有关 get_cli 其他命令的更多信息,请查阅官方 get_cli文档。
这个包显然是为了解决我自己的需求而创建的,但如果它能帮助到其他人,我会很高兴。