jonataslaw/get_cli(新しいタブで開きます)
主要言語: Dart
Official Getx CLI
- star 数
- 654
- watcher 数
- 13
- fork 数
- 190
- issue 数
- 139
- 最終更新
- 2026/02/02
主要言語: Dart
Official Getx CLI
| pt_BR | en_US - this file | zh_CN |
|---|
Official CLI for the GetX™ framework.
// 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 // 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 // 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 //to generate the model without the provider get generate model on home with assets/models/user.json --skipProvider //Note: the URL must return a json format get generate model on home from "https://api.github.com/users/CpdnCristiano" // To install a package in your project (dependencies): get install camera // To install several packages from your project: get install http path camera // To install a package with specific version: get install path:1.6.4 // You can also specify several packages with version numbers // To install a dev package in your project (dependencies_dev): get install flutter_launcher_icons --dev // To remove a package from your project: get remove http // To remove several packages from your project: get remove http path // To update CLI: get update // or `get upgrade` // Shows the current CLI version: get -v // or `get -version` // For help get help
let's explore the existing commands in the cli
get create project
Using to generate a new project, you can choose between Flutter and get_server, after creating the default directory, it will run a get init next command
get init
Use this command with care it will overwrite all files in the lib folder. It allows you to choose between two structures, getx_pattern and clean.
get create page:name
this command allows you to create modules, it is recommended for users who chose to use getx_pattern.
creates the view, controller and binding files, in addition to automatically adding the route.
You can create a module within another module.
get create page:name on other_module
When creating a new project now and use on to create a page the CLI will use children pages.
get create screen:name
similar to the create page, but suitable for those who use Clean
get create controller:dialog on your_folder
create a controller in a specific folder.
Using with option You can now create a template file, the way you prefer.
run
get create controller:auth with examples/authcontroller.dart on your_folder
or with url run
get create controller:auth with 'https://raw.githubusercontent.com/jonataslaw/get_cli/master/samples_file/controller.dart.example' on your_folderinput:
@import class @controller extends GetxController { final email = ''.obs; final password = ''.obs; void login() { } }
output:
import 'package:get/get.dart'; class AuthController extends GetxController { final email = ''.obs; final password = ''.obs; void login() {} }
get create view:dialog on your_folder
create a view in a specific folder
create the json language files in the assets/locales folder.
input:
pt_BR.json
{
"buttons": {
"login": "Entrar",
"sign_in": "Cadastrar-se",
"logout": "Sair",
"sign_in_fb": "Entrar com o Facebook",
"sign_in_google": "Entrar com o Google",
"sign_in_apple": "Entrar com a 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"
}
}Run :
get generate locales assets/locales
output:
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', }; }
now just add the line in GetMaterialApp
GetMaterialApp( ... translationsKeys: AppTranslation.translations, ... )
Create the json model file in the assets/models/user.json
input:
{
"name": "",
"age": 0,
"friends": ["", ""]
}Run :
get generate model on home with assets/models/user.json
output:
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; } }
One day a user asked me, if it was possible to change what the final name of the file was, he found it more readable to use: my_controller_name.controller.dart, instead of the default generated by the cli: my_controller_name_controller. dart thinking about users like him we added the option for you to choose your own separator, just add this information in your pubsepc.yaml
Example:
get_cli: separator: "."
When you create a page or screen, each module will have bindings, controllers, views sub directories.
If you prefer to have a flat file hierarchy, add the following lines to your pubspec.yaml:
get_cli: sub_folder: false
To help you organize your imports a new command was created: get sort, in addition to organizing your imports the command will also format your dart file. thanks to dart_style.
When using get sort all files are renamed, with the separator.
To not rename use the --skipRename flag.
You are one of those who prefer to use relative imports instead of project imports, use the --relative option. get_cli will convert.
CLI now has an internationalization system.
to translate the cli into your language:
TODO: