Flutter命令行工具增强插件get_cli_fork的使用
Flutter命令行工具增强插件get_cli_fork的使用
官方CLI用于GetX™框架。
安装
// To install:
pub global activate get_cli
// (to use this add the following to system PATH: [FlutterSDKInstallDir]\bin\cache\dart-sdk\bin
flutter pub global activate get_cli
创建Flutter项目
// To create a flutter project in the current directory:
// Note: By default it will take the folder's name as project name
// You can name the project with `get create project:my_project`
// If the name has spaces use `get create project:"my cool project"`
get create project
初始化项目结构
// To generate the chosen structure on an existing project:
get init
创建页面
// To create a page:
// (Pages have controller, view, and binding)
// Note: you can use any name, ex: `get create page:login`
// Nota: use this option if the chosen structure was Getx_pattern
get create page:home
创建屏幕
// To create a screen
// (Screens have controller, view, and binding)
// Note: you can use any name, ex: `get screen page:login`
// Nota: use this option if the chosen structure was CLEAN (by Arktekko)
get create screen:home
在特定文件夹中创建控制器
// To create a new controller in a specific folder:
// Note: you don't need to reference the folder,
// Getx will search automatically for the home folder
// and add your controller there.
get create controller:dialogcontroller on home
在特定文件夹中创建视图
// To create a new view in a specific folder:
// Note: you don't need to reference the folder,
// Getx will automatically search for the home folder
// and insert your view there.
get create view:dialogview on home
在特定文件夹中创建提供者
// To create a new provider in a specific folder:
get create provider:user on home
生成本地化文件
// To generate a localization file:
// Note: 'assets/locales' directory with your translation files in json format
get generate locales assets/locales
示例输入
{
"buttons": {
"login": "登录",
"sign_in": "注册",
"logout": "退出",
"sign_in_fb": "使用Facebook登录",
"sign_in_google": "使用Google登录",
"sign_in_apple": "使用Apple登录"
}
}
运行命令
get generate locales assets/locales
输出
abstract class AppTranslation {
static Map<String, Map<String, String>> translations = {
'en_US' : Locales.en_US,
'pt_BR' : Locales.pt_BR,
};
}
abstract class LocaleKeys {
static const buttons_login = 'buttons_login';
static const buttons_sign_in = 'buttons_sign_in';
static const buttons_logout = 'buttons_logout';
static const buttons_sign_in_fb = 'buttons_sign_in_fb';
static const buttons_sign_in_google = 'buttons_sign_in_google';
static const buttons_sign_in_apple = 'buttons_sign_in_apple';
}
abstract class Locales {
static const en_US = {
'buttons_login': 'Login',
'buttons_sign_in': 'Sign-in',
'buttons_logout': 'Logout',
'buttons_sign_in_fb': 'Sign-in with Facebook',
'buttons_sign_in_google': 'Sign-in with Google',
'buttons_sign_in_apple': 'Sign-in with Apple',
};
static const pt_BR = {
'buttons_login': 'Entrar',
'buttons_sign_in': 'Cadastrar-se',
'buttons_logout': 'Sair',
'buttons_sign_in_fb': 'Entrar com o Facebook',
'buttons_sign_in_google': 'Entrar com o Google',
'buttons_sign_in_apple': 'Entrar com a Apple',
};
}
现在只需在GetMaterialApp中添加以下行:
GetMaterialApp(
...
translationsKeys: AppTranslation.translations,
...
)
生成模型示例
// To generate a class model:
// Note: 'assets/models/user.json' path of your template file in json format
// Note: on == folder output file
// Getx will automatically search for the home folder
// and insert your class model there.
get generate model on home with assets/models/user.json
示例输入
{
"name": "",
"age": 0,
"friends": ["", ""]
}
运行命令
get generate model on home with assets/models/user.json
输出
class User {
String name;
int age;
List<String> friends;
User({this.name, this.age, this.friends});
User.fromJson(Map<String, dynamic> json) {
name = json['name'];
age = json['age'];
friends = json['friends'].cast<String>();
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name;
data['age'] = this.age;
data['friends'] = this.friends;
return data;
}
}
更改文件类型分隔符
有一天,一位用户问我是否可以更改文件的最终名称。他发现使用my_controller_name.controller.dart
比默认生成的my_controller_name_controller.dart
更具可读性。考虑到像他这样的用户,我们添加了选项让你选择自己的分隔符,只需在你的pubspec.yaml
中添加此信息。
示例
get_cli:
separator: "."
配置Getx目录布局
当你创建一个页面或屏幕时,每个模块都会有绑定、控制器、视图子目录。
如果你更喜欢扁平的文件层次结构,在你的pubspec.yaml
中添加以下行:
get_cli:
sub_folder: false
更多关于Flutter命令行工具增强插件get_cli_fork的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter命令行工具增强插件get_cli_fork的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
get_cli_fork
是一个基于 get_cli
的增强版命令行工具,用于快速生成 Flutter 项目结构、页面、控制器、路由等。它可以帮助开发者更高效地开发 Flutter 应用,特别是在使用 GetX
状态管理库时。
安装 get_cli_fork
首先,你需要确保已经安装了 Flutter 和 Dart。然后,你可以通过以下命令全局安装 get_cli_fork
:
dart pub global activate get_cli_fork
安装完成后,你可以通过以下命令验证是否安装成功:
get_cli_fork --version
常用命令
1. 创建新项目
你可以使用 get_cli_fork
快速创建一个新的 Flutter 项目:
get_cli_fork create project:my_project
这将在当前目录下创建一个名为 my_project
的 Flutter 项目。
2. 生成页面
get_cli_fork
可以帮助你快速生成页面、控制器和绑定。例如,生成一个名为 home
的页面:
get_cli_fork generate page:home
这将在 lib/app/pages/home
目录下生成 home_page.dart
、home_controller.dart
和 home_binding.dart
文件。
3. 生成控制器
如果你只需要生成一个控制器,可以使用以下命令:
get_cli_fork generate controller:home
这将在 lib/app/controllers
目录下生成 home_controller.dart
文件。
4. 生成模型
get_cli_fork
还可以帮助你生成模型类。例如,生成一个名为 user
的模型:
get_cli_fork generate model:user
这将在 lib/app/models
目录下生成 user_model.dart
文件。
5. 生成服务
生成一个服务类:
get_cli_fork generate service:api
这将在 lib/app/services
目录下生成 api_service.dart
文件。
6. 生成路由
get_cli_fork
还可以帮助你生成路由配置。例如,生成一个名为 app_routes.dart
的路由文件:
get_cli_fork generate route:app_routes
这将在 lib/app/routes
目录下生成 app_routes.dart
文件。
7. 生成测试
你可以使用 get_cli_fork
生成测试文件。例如,生成 home_page
的测试文件:
get_cli_fork generate test:home_page
这将在 test/app/pages/home
目录下生成 home_page_test.dart
文件。
其他功能
get_cli_fork
还提供了其他一些功能,例如:
-
清理项目:清理项目中未使用的文件。
get_cli_fork clean
-
格式化代码:格式化项目中的 Dart 代码。
get_cli_fork format
-
运行测试:运行项目中的所有测试。
get_cli_fork test