GetX Cli安裝
視頻教程地址
第一步:安裝Cli腳手架
我們通過命令flutter pub global activate get_cli
進行腳手架的全局安裝,本文以Mac OS
為例。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:~ jm$ flutter pub global activate get_cli
Resolving dependencies...
- _fe_analyzer_shared 25.0.0
- analyzer 2.2.0
- ansicolor 2.0.1
- archive 3.1.2
- args 2.2.0
- async 2.8.2
- charcode 1.3.1
- cli_dialog 0.5.0
- cli_menu 0.3.0-nullsafety.0
- cli_util 0.3.3
- clock 1.1.0
- collection 1.15.0
- convert 3.0.1
- crypto 3.0.1
- dart_console 1.0.0
- dart_style 2.0.3
- ffi 1.1.2
- file 6.1.2
- get_cli 1.6.0
- glob 2.0.1
- http 0.13.3
- http_parser 4.0.0
- intl 0.17.0
- matcher 0.12.11
- meta 1.7.0
- package_config 2.0.0
- path 1.8.0
- pedantic 1.11.1
- process_run 0.12.1+1
- pub_semver 2.0.0
- pubspec 2.0.1
- quiver 3.0.1
- recase 4.0.0
- source_span 1.8.1
- stack_trace 1.10.0
- string_scanner 1.1.0
- synchronized 3.0.0
- term_glyph 1.2.0
- typed_data 1.3.0
- uri 1.0.0
- version 2.0.0
- watcher 1.0.0
- win32 2.2.9
- yaml 3.1.0
Downloading get_cli 1.6.0...
Downloading version 2.0.0...
Downloading recase 4.0.0...
Downloading pubspec 2.0.1...
Downloading cli_menu 0.3.0-nullsafety.0...
Downloading cli_dialog 0.5.0...
Downloading ansicolor 2.0.1...
Downloading uri 1.0.0...
Downloading process_run 0.12.1+1...
Downloading synchronized 3.0.0...
Downloading dart_console 1.0.0...
Downloading quiver 3.0.1...
Downloading dart_style 2.0.3...
Downloading analyzer 2.2.0...
Downloading _fe_analyzer_shared 25.0.0...
Downloading win32 2.2.9...
Building package executables...
Built get_cli:get.
Installed executables get and getx.
Warning: Pub installs executables into $HOME/.pub-cache/bin, which is not on your path.
You can fix that by adding this to your shell's config file (.bashrc, .bash_profile, etc.):
export PATH="HOME/.pub-cache/bin"
Activated get_cli 1.6.0. </pre>
|`
第二步:設置環境變量
一般Mac
的環境變量都是通過根目錄的.bash_profile
進行環境變量設置。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">#getX
export PATH="HOME/.pub-cache/bin"
</pre>
|`
第三步:使設置的環境變量生效
我們可以通過source
加上路徑,對環境變量生效。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:~ jm$ source "/Users/jm/.bash_profile"
</pre>
|`
第四步:校驗是否成功安裝
我們通過get
命令,看能不能打印如下,如果有,那么恭喜你安裝成功了。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:~ jm$ get
List available commands:
create:
controller: Generate controller
page: Use to generate pages
project: Use to generate new project
provider: Create a new Provider
screen: Generate new screen
view: Generate view
generate:
locales: Generate translation file from json files
model: generate Class model from json
help: Show this help
init: generate the chosen structure on an existing project:
install: Use to install a package in your project (dependencies):
remove: Use to remove a package in your project (dependencies):
sort: Sort imports and format dart files
update: To update GET_CLI
--version: Shows the current CLI version'
Time: 1814 Milliseconds </pre>
|`
Cli創建工程
我們可以通過get create project
來進行創建工程,
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx jm$ get create project
</pre>
|`
然后出現如下提示,我們選擇創建Flutter Project
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">--> 1) Flutter Project
2) Get Server
</pre>
|`
選擇之后需要輸入工程名稱、公司域名、選擇iOS語言、選擇Android語言、是否空安全、是否校驗,選完知道就會為我們開始創建工程。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx jm$ get create project
--> 1) Flutter Project
2) Get Server
? what is the name of the project? getx_example
? What is your company's domain? Example: com.yourcompany com.jimi
what language do you want to use on ios?
1) Swift
--> 2) Objective-C
what language do you want to use on android?
1) Kotlin
--> 2) Java
Do you want to use null safe?
--> 1) Yes!
2) No
do you want to use some linter?
1) no
2) Pedantic [Deprecated]
3) Effective Dart [Deprecated]
--> 4) Dart Recommended
Running flutter create /Users/jm/Desktop/Project/getx/getx_example
… $ flutter create --no-pub -i objc -a java --org com.jimi /Users/jm/Desktop/Project/getx/getx_example
Creating project ....
test/widget_test.dart (created)
pubspec.yaml (created)
README.md (created)
lib/main.dart (created)
windows/runner/flutter_window.cpp (created)
windows/runner/utils.h (created)
windows/runner/utils.cpp (created)
windows/runner/runner.exe.manifest (created)
windows/runner/CMakeLists.txt (created)
windows/runner/win32_window.h (created)
windows/runner/Runner.rc (created)
windows/runner/win32_window.cpp (created)
windows/runner/resources/app_icon.ico (created)
windows/runner/main.cpp (created)
windows/runner/resource.h (created)
windows/runner/flutter_window.h (created)
windows/flutter/CMakeLists.txt (created)
windows/.gitignore (created)
windows/CMakeLists.txt (created)
ios/Runner.xcworkspace/contents.xcworkspacedata (created)
ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (created)
ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings (created)
ios/Runner/Info.plist (created)
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png (created)
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png (created)
ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md (created)
ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json (created)
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png (created)
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png (created)
ios/Runner/Base.lproj/LaunchScreen.storyboard (created)
ios/Runner/Base.lproj/Main.storyboard (created)
ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata (created)
ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (created)
ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings (created)
ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme (created)
ios/Flutter/Debug.xcconfig (created)
ios/Flutter/Release.xcconfig (created)
ios/Flutter/AppFrameworkInfo.plist (created)
ios/.gitignore (created)
getx_example.iml (created)
.gitignore (created)
web/favicon.png (created)
web/index.html (created)
web/manifest.json (created)
web/icons/Icon-maskable-512.png (created)
web/icons/Icon-192.png (created)
web/icons/Icon-maskable-192.png (created)
web/icons/Icon-512.png (created)
.metadata (created)
macos/Runner.xcworkspace/contents.xcworkspacedata (created)
macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (created)
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png (created)
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png (created)
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png (created)
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png (created)
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png (created)
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png (created)
macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json (created)
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png (created)
macos/Runner/DebugProfile.entitlements (created)
macos/Runner/Base.lproj/MainMenu.xib (created)
macos/Runner/MainFlutterWindow.swift (created)
macos/Runner/Configs/Debug.xcconfig (created)
macos/Runner/Configs/Release.xcconfig (created)
macos/Runner/Configs/Warnings.xcconfig (created)
macos/Runner/Configs/AppInfo.xcconfig (created)
macos/Runner/AppDelegate.swift (created)
macos/Runner/Info.plist (created)
macos/Runner/Release.entitlements (created)
macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (created)
macos/Runner.xcodeproj/project.pbxproj (created)
macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme (created)
macos/Flutter/Flutter-Debug.xcconfig (created)
macos/Flutter/Flutter-Release.xcconfig (created)
macos/.gitignore (created)
ios/Runner/AppDelegate.h (created)
ios/Runner/main.m (created)
ios/Runner/AppDelegate.m (created)
ios/Runner.xcodeproj/project.pbxproj (created)
android/app/src/profile/AndroidManifest.xml (created)
android/app/src/main/res/mipmap-mdpi/ic_launcher.png (created)
android/app/src/main/res/mipmap-hdpi/ic_launcher.png (created)
android/app/src/main/res/drawable/launch_background.xml (created)
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png (created)
android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png (created)
android/app/src/main/res/values-night/styles.xml (created)
android/app/src/main/res/values/styles.xml (created)
android/app/src/main/res/drawable-v21/launch_background.xml (created)
android/app/src/main/res/mipmap-xhdpi/ic_launcher.png (created)
android/app/src/main/AndroidManifest.xml (created)
android/app/src/debug/AndroidManifest.xml (created)
android/gradle/wrapper/gradle-wrapper.properties (created)
android/gradle.properties (created)
android/.gitignore (created)
android/settings.gradle (created)
android/app/build.gradle (created)
android/app/src/main/java/com/jimi/getx_example/MainActivity.java (created)
android/build.gradle (created)
android/getx_example_android.iml (created)
analysis_options.yaml (created)
.idea/runConfigurations/main_dart.xml (created)
.idea/libraries/Dart_SDK.xml (created)
.idea/libraries/KotlinJavaRuntime.xml (created)
.idea/modules.xml (created)
.idea/workspace.xml (created)
linux/main.cc (created)
linux/my_application.h (created)
linux/my_application.cc (created)
linux/flutter/CMakeLists.txt (created)
linux/.gitignore (created)
linux/CMakeLists.txt (created)
Wrote 129 files.
All done!
In order to run your application, type: flutter run
Your application code is in ./lib/main.dart.
Running flutter pub get
… dart migrate --apply-changes --skip-import-check
Migrating /Users/jm/Desktop/Project/getx/getx_example
See https://dart.dev/go/null-safety-migration for a migration guide.
Analyzing project...
All sources appear to be already migrated. Nothing to do.
? + HandshakeException: Connection terminated during handshake
? File: analysis_options.yaml created successfully at path: analysis_options.yaml
--> 1) GetX Pattern (by Kauê)
2) CLEAN (by Arktekko)
Your lib folder is not empty. Are you sure you want to overwrite your application?
WARNING: This action is irreversible
--> 1) Yes!
2) No
? 'Package: get installed!
? File: main.dart created successfully at path: lib/main.dart
? File: home_controller.dart created successfully at path: ./lib/app/modules/home/controllers/home_controller.dart
? File: home_view.dart created successfully at path: ./lib/app/modules/home/views/home_view.dart
? File: home_binding.dart created successfully at path: ./lib/app/modules/home/bindings/home_binding.dart
? File: app_routes.dart created successfully at path: lib/app/routes/app_routes.dart
? File: app_pages.dart created successfully at path: lib/app/routes/app_pages.dart
? home route created successfully.
? Home page created successfully.
? GetX Pattern structure successfully generated.
Running flutter pub get
…
$ flutter pub get
Running "flutter pub get" in getx_example... 968ms
Time: 53925 Milliseconds
</pre>
|`
如果能看到如上就證明通過Cli
創建工程成功了。
Cli創建頁面
第一種:Getx_pattern
我們可以通過get create page:login
來快速創建一個頁面,這個頁面有controller
、view
、binding
、routes
等配置,結構是Getx_pattern
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get create page:login
? File: login_controller.dart created successfully at path: ./lib/app/modules/login/controllers/login_controller.dart
? File: login_view.dart created successfully at path: ./lib/app/modules/login/views/login_view.dart
? File: login_binding.dart created successfully at path: ./lib/app/modules/login/bindings/login_binding.dart
? login route created successfully.
? Login page created successfully.
Time: 453 Milliseconds
JMdeMacBook-Pro:getx_example jm$
</pre>
|`
第二種:CLEAN
我們可以通過get create page:login
來快速創建一個頁面,這個頁面有controller
、view
、binding
、routes
等配置,結構是CLEAN
。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
11
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get create screen:name
? File: name.controller.dart created successfully at path: ./lib/presentation/name/controllers/name.controller.dart
? File: name.screen.dart created successfully at path: ./lib/presentation/name/name.screen.dart
? File: name.controller.binding.dart created successfully at path: lib/infrastructure/navigation/bindings/controllers/name.controller.binding.dart
? File: routes.dart created successfully at path: lib/infrastructure/navigation/routes.dart
? File: routes.dart created successfully at path: lib/infrastructure/navigation/routes.dart
? name route created successfully.
? File: navigation.dart created successfully at path: lib/infrastructure/navigation/navigation.dart
? Name navigation added successfully.
Time: 482 Milliseconds
</pre>
|`
Cli創建控制器
我們可以通過get create controller:login
來快速為已存在的page進行創建controller
,并且他還重新了controller
的生命周期以及初始化方法。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">get create controller:another on home
? File: another_controller.dart created successfully at path: ./lib/app/modules/home/controllers/another_controller.dart
? The Another has been added to binding at path: lib/app/modules/home/bindings/home_binding.dart'
Time: 387 Milliseconds
JMdeMacBook-Pro:getx_example jm$ </pre>
|`
Cli創建View
如果我們只是想單獨創建一個View
,那我們可以通過get create view:alogin on login
來進行創建。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;"> get create view:alogin on login
? File: alogin_view.dart created successfully at path: ./lib/app/modules/login/views/alogin_view.dart
Time: 378 Milliseconds
JMdeMacBook-Pro:getx_example jm$
</pre>
|`
Cli創建Provider
如果我們需要創建GetConnect
,那我們可以通過get create provider:blogin on login
來進行創建。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get create provider:blogin on login
? File: blogin_provider.dart created successfully at path: ./lib/app/modules/login/providers/blogin_provider.dart
Time: 357 Milliseconds
JMdeMacBook-Pro:getx_example jm$
</pre>
|`
Cli創建國際化
如果我們需要對應用進行國際化配置,那我們可以通過get generate locales assets/locales
來進行創建。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get generate locales assets/locales
? File: locales.g.dart created successfully at path: lib/generated/locales.g.dart
? locale files generated successfully.
Time: 416 Milliseconds
JMdeMacBook-Pro:getx_example jm$
</pre>
|`
Cli通過json生成模型
第一種:不僅創建模型類,還會提供Provider
如果我們需要對某個json文件生成模型,那我們可以通過get generate model on home with assets/models/user.json
來進行生成
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get generate model on home with assets/models/user.json
? File: user_model.dart created successfully at path: ./lib/app/modules/home/user_model.dart
? File: user_provider.dart created successfully at path: ./lib/app/modules/home/providers/user_provider.dart
Time: 499 Milliseconds
JMdeMacBook-Pro:getx_example jm$
</pre>
|`
第二種:只生成模型類
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get generate model on login with assets/models/user.json --skipProvider
? File: user_model.dart created successfully at path: ./lib/app/modules/login/user_model.dart
Time: 408 Milliseconds
</pre>
|`
第三種:通過連接生成模型類
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get generate model on home from "https://api.github.com/users/CpdnCristiano"
? Could not set the model name automatically, which name do you want to use? githubHome
? File: github_home_model.dart created successfully at path: ./lib/app/modules/home/github_home_model.dart
? File: github_home_provider.dart created successfully at path: ./lib/app/modules/home/providers/github_home_provider.dart
Time: 14033 Milliseconds
</pre>
|`
Cli安裝包(dependencies)
第一種:直接安裝最新版本
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
11
12
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get install dio
Installing package "dio" …
? 'Package: dio installed!
Running flutter pub get
… $ flutter pub get
Running "flutter pub get" in getx_example... 2,656ms
Time: 5815 Milliseconds </pre>
|`
第二種:同時安裝多個包
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get install path dio
Installing package "path" …
? 'Package: path installed!
Installing package "dio" …
? 'Package: dio installed!
Running flutter pub get
…
$ flutter pub get
Running "flutter pub get" in getx_example... 732ms
Time: 7146 Milliseconds
</pre>
|`
第三種:安裝自定版本的包
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get install prodiver:5.0.0
Installing package "prodiver" …
? 'Package: prodiver installed! </pre>
|`
Cli安裝包(dev_dependencies)
我們可以通過get install flutter_launcher_icons --dev
安裝開發時所依賴的包
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get install flutter_launcher_icons --dev
The [--dev] is not necessary
Installing package "flutter_launcher_icons" …
? 'Package: flutter_launcher_icons installed! </pre>
|`
Cli卸載包
第一種:卸載某個安裝包
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get remove http
Removing package: "http"
Package: http is not installed in this application
Running flutter pub get
…
$ flutter pub get
Running "flutter pub get" in getx_example... 772ms
Time: 2641 Milliseconds
</pre>
|`
第二種:同時卸載多個包
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get remove dio path
Removing package: "dio"
? Package: dio removed!
Removing package: "path"
? Package: path removed!
Running flutter pub get
…
$ flutter pub get
Running "flutter pub get" in getx_example... 1,085ms
Time: 3142 Milliseconds
</pre>
|`
Cli更新腳手架
我們可以通過get update
對腳手架進行更新
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get update
Latest version of get_cli already installed
Time: 3315 Milliseconds
</pre>
|`
Cli查看版本號
我們可以通過get -v
查看當前腳手架的版本號
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
11
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get -v
?██████╗?███████╗████████╗?? ?█████╗?██╗??????██╗
██╔════╝?██╔════╝╚══██╔══╝? ?██╔══██╗██║??????██║
██║??██╗?█████╗?????██║???? ?██║??╚═╝██║??????██║
██║??╚██╗██╔══╝?????██║???? ?██║??██╗██║??????██║
╚██████╔╝███████╗???██║???? ?╚█████╔╝███████╗ ██║
?╚═════╝?╚══════╝???╚═╝???? ??╚════╝?╚══════╝ ╚═╝
Version: 1.6.0
Time: 148 Milliseconds
</pre>
|`
Cli幫助
當我們忘記了命令的使用方式,我們可以通過get help
進行查看幫助。
`|
<pre class="lineno" style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: var(--highlight-lineno-color); line-height: 1.4rem; overflow-wrap: normal; word-break: normal; margin-left: 0.2rem; padding-right: 0.5rem; min-width: 2.2rem; text-align: right; border-right: 1px solid var(--highlight-lineno-border-color); user-select: none;">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre>
|
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.85rem; margin-top: 0px; margin-bottom: 0px; overflow: visible; display: block; color: rgb(33, 37, 41); line-height: 1.4rem; overflow-wrap: normal; word-break: normal;">JMdeMacBook-Pro:getx_example jm$ get help
List available commands:
create:
controller: Generate controller
page: Use to generate pages
project: Use to generate new project
provider: Create a new Provider
screen: Generate new screen
view: Generate view
generate:
locales: Generate translation file from json files
model: generate Class model from json
help: Show this help
init: generate the chosen structure on an existing project:
install: Use to install a package in your project (dependencies):
remove: Use to remove a package in your project (dependencies):
sort: Sort imports and format dart files
update: To update GET_CLI
--version: Shows the current CLI version'
Time: 94 Milliseconds </pre>
|`
總結
以上就是對Cli的腳手架命令的一個實踐和總結,相對于自己手動創建結構,用Cli
就可以很輕松的實現。