Flutter. 适用于 GetX 5 的 CLI (命令行接口/工具)

我希望在新项目中使用 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\
  1. 移除了 pubspec.yaml 中的 sub_folder: false 选项。现在,默认情况下采用扁平结构,如下所示:
arduino 复制代码
  home\
       home_binding.dart
       home_controller.dart
       home_view.dart

无需额外的文件夹选项。

  1. 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(),          
        )       
     ];     
   }    
}
  1. 新增了 create service 命令。 (请阅读下文了解详情。)

安装

首先,停用 get_cli (如果它已被激活):

bash 复制代码
dart pub global deactivate get_cli

然后,激活 get_cli5

bash 复制代码
dart pub global activate get_cli5

用法

初始化项目

  1. 使用 View -> Command Palette... 或在终端运行 flutter create 来创建一个 Flutter 项目。
  2. 在终端运行 get init 命令。它将生成以下文件夹和文件:
  1. 向项目中添加视图 (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文档

这个包显然是为了解决我自己的需求而创建的,但如果它能帮助到其他人,我会很高兴。

相关推荐
LaughingZhu1 天前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
怕浪猫1 天前
Electron 开发实战(一):从零入门核心基础与环境搭建
前端·electron·ai编程
小鹏linux1 天前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
前端若水1 天前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Bigger1 天前
mini-cc:一个轻量级 AI 编程助手的诞生
前端·ai编程·claude
涵涵(互关)1 天前
Naive-ui树型选择器只显示根节点
前端·ui·vue
BY组态1 天前
Ricon组态系统最佳实践:从零开始构建物联网监控平台
前端·物联网·iot·web组态·组态
BY组态1 天前
Ricon组态系统vs传统组态软件:为什么选择新一代Web组态平台
前端·物联网·iot·web组态·组态
SoaringHeart1 天前
Flutter进阶:OverlayEntry 插入图层管理器 NOverlayZIndexManager
前端·flutter
放下华子我只抽RuiKe51 天前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架