get_cli
get_cli 的使用
win 安装 get_cli
flutter pub global activate get_cli
提示
Warning: Pub installs executables into F:\flutter_windows\flutter_windows_3.3.0- stable\flutter.pub-cache\bin, which is not on your path.
下面路径添加到Path环境变量里面
F:\SDK的目录\flutter_windows_3.3.0-stable\flutter\.pub-cache\bin
mac 安装 get_cli
flutter pub global activate get_cli
配置环境变量
一般 Mac
的环境变量都是通过根目录的 .bash_profile
进行环境变量设置。
vim ~/.bash_profile
vim ~/.zshrc
export PATH=/Users/目录/flutter_mac/flutter/bin:$PATH
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH="$PATH":"$HOME/Documents/flutter_sdk/flutter/.pub-cache/bin"
让配置环境变量生效
source ~/.bash_profile
source ~/.zshrc
验证get_cli是否安装配置成功
终端输入
get
或者
getx
如果能出来命令提示说明 get_cli
安装配置成功
D:\getx\getx_cli>get
Can't load Kernel binary: Invalid SDK hash.
List available commands:
create:
controller: 生成 controller
page: 用于生成 page
project: 用于生成新项目
provider: 创建一个新 Provider
screen: 生成新 Screen
view: 生成 view
generate:
locales: 从 json 文件生成国际化翻译文件
model: 从 json 生成 model 类
help: 显示本帮助
init: 生成所选结构在现有项目:
install: 为你的项目安装依赖:
remove: 为你的项目移除依赖:
sort: 排序 import 并格式化 dart 文件
update: 更新 GET_CLI
--version: 显示当前 CLI 版本
Time: 119 Milliseconds
使用 get_cli 命令行
初始化项目
get init
创建页面
get create page:search
get create page:cart
get create page:user
get create page:category
创建控制器
get create controller:counter
// 在指定目录里面创建控制器
get create controller:counter on home
创建view
// 只会生成一个继承GetView的dart文件
get create view:dialogview on home
创建provider
// 生成一个继承 `GetConnect` 的类,用于请求数据,`GetConnect` 可以便捷的通过 `http` 或 `websockets` 进行前后台通信。
get create provider:user on home
生成国际化文件
在 assets/locales
目录创建 json
格式的语言文件
输入:
zh_CN.json
{
"buttons": {
"login": "登录",
"sign_in": "注册",
"logout": "注销",
"sign_in_fb": "用 Facebook 登录",
"sign_in_google": "用 Google 登录",
"sign_in_apple": "用 Apple 登录"
}
}
en_US.json
{
"buttons": {
"login": "Login",
"sign_in": "Sign-in",
"logout": "Logout",
"sign_in_fb": "Sign-in with Facebook",
"sign_in_google": "Sign-in with Google",
"sign_in_apple": "Sign-in with Apple"
}
}
运行:
get generate locales assets/locales
输出:
abstract class AppTranslation {
static Map<String, Map<String, String>> translations = {
'en_US' : Locales.en_US,
'zh_CN' : Locales.zh_CN,
};
}
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 zh_CN = {
'buttons_login': 'Entrar',
'buttons_sign_in': 'Cadastrar-se',
'buttons_logout': 'Sair',
'buttons_sign_in_fb': '用 Facebook 登录',
'buttons_sign_in_google': '用 Google 登录',
'buttons_sign_in_apple': '用 Apple 登录',
};
}
现在只需要在 GetMaterialApp
中加入
GetMaterialApp(
...
translationsKeys: AppTranslation.translations,
locale:const Locale('zh', 'CN'), // 将会按照此处指定的语言翻译
fallbackLocale:const Locale('en', 'US'), // 添加一个回调语言选项,以备上面指定的语言翻译不存在
...
)
生成 model
在实际项目中我们需要把服务器返回的 map
对象转换成 model
类,这个时候就可以使用 get
中的 generate model
生成 model
get generate model on home from "https://jdmall.itying.com/api/focus"