一、核心语法(必记)
创建 Flutter 项目的基础命令格式:
flutter create [可选参数] <项目输出目录>
- 若
<项目输出目录>是新文件夹(如my_app),会自动创建该文件夹并生成项目; - 若
<项目输出目录>是已存在的项目文件夹,会修复项目(重新创建缺失文件)。
二、常见场景示例(直接复制使用)
场景 1:创建「默认配置」的 Flutter 应用(最常用)
无需额外参数,直接生成支持所有平台(iOS/Android/Windows/Linux/macOS/Web)、Kotlin 安卓语言、默认描述和组织的应用:
# 在当前目录下创建名为 my_first_app 的项目(文件夹自动生成)
flutter create my_first_app
- 默认行为:执行
flutter pub get下载依赖、生成完整平台代码、main.dart含示例计数器代码。
场景 2:创建时「指定项目信息」(名称、描述、组织)
自定义项目名称、描述文案、组织域名(影响安卓包名 /iOS Bundle ID):
# 示例:创建名为 "flutter_shop" 的项目,描述为"电商APP",组织域名为 "com.mycompany"
flutter create --project-name flutter_shop \
--description "一款 Flutter 电商应用" \
--org com.mycompany \
my_shop_project # 输出目录(可与项目名一致,也可自定义)
-
说明:
--project-name:必须是有效的 Dart 包名(只能包含字母、数字、下划线,且不能以数字开头,如flutter_shop合法,flutter-shop不合法);--org:采用「反向域名」格式(如公司域名是mycompany.com,则组织名写com.mycompany),最终安卓包名会是com.mycompany.flutter_shop,iOS Bundle ID 同理。
场景 3:只创建「特定平台」的项目(按需生成)
默认会生成所有 6 个平台的代码,若只需 iOS 和 Android(移动端),或想添加 Web / 桌面平台,用 --platforms 指定:
# 示例 1:只创建 iOS + Android 平台的项目(移动端专属)
flutter create --platforms ios,android my_mobile_app
# 示例 2:创建 iOS + Android + Web 平台的项目(移动端+网页端)
flutter create --platforms ios,android,web my_multi_platform_app
# 示例 3:给现有项目添加 Windows 平台支持(进入项目目录执行)
flutter create --platforms windows . # 注意末尾的 "." 表示当前目录(现有项目)
- 支持的平台值:
ios、android、windows、linux、macos、web(多个平台用逗号分隔); - 若要添加桌面平台(Windows/Linux/macOS),需先启用桌面支持(执行
flutter config --enable-windows-desktop等,具体参考 Flutter 桌面开发文档)。
场景 4:创建「极简项目」(无示例代码)
想从零开始写代码,用 --empty 参数生成只有极简 main.dart(无注释、无计数器示例)的项目:
# 创建极简项目(隐含 --template=app)
flutter create --empty my_empty_app
- 生成的
main.dart只有最基础的MaterialApp框架,干净无冗余。
场景 5:创建「模块 / 插件」(不是普通应用)
除了普通 App,还能创建可集成到原生项目的「模块」,或可共享的「插件」,用 --template 指定类型:
# 示例 1:创建 Flutter 模块(用于集成到现有 Android/iOS 原生项目)
flutter create --template module my_flutter_module
# 示例 2:创建普通插件(通过方法通道实现跨平台原生交互)
flutter create --template plugin --platforms ios,android my_plugin
# 示例 3:创建 FFI 插件(通过 dart:ffi 调用 C/C++ 原生代码)
flutter create --template plugin_ffi --platforms windows,linux my_ffi_plugin
场景 6:修复「现有项目」(缺失文件恢复)
如果项目的某个平台代码被误删(如 android/ 文件夹丢失),进入项目目录执行以下命令,会自动重建缺失的文件:
# 进入现有项目根目录
cd my_existing_project
# 修复项目(不覆盖现有文件,只补缺失的)
flutter create . # 末尾的 "." 表示当前目录(必须是项目根目录)
- 若想强制覆盖现有文件(谨慎使用!会覆盖修改过的代码),加
--overwrite参数:flutter create --overwrite .
场景 7:离线创建项目(无网络环境)
若没有网络,且之前已缓存过依赖,用 --offline 参数避免执行 flutter pub get 时联网:
flutter create --offline --no-pub my_offline_app
- 说明:
--no-pub表示不自动执行flutter pub get(离线时若依赖未缓存,pub get会失败,可后续联网后手动执行flutter pub get)。
三、关键参数补充(易混淆点)
| 参数 | 实用场景举例 |
|---|---|
--android-language | 指定安卓代码语言(默认 Kotlin),如需 Java:flutter create --android-language java my_java_app |
--template=package | 创建纯 Dart 共享包(无平台代码,仅用于复用 Dart 逻辑):flutter create --template package my_dart_package |
-v | 查看详细日志(排错时用):flutter create -v my_app |
四、注意事项(避坑指南)
- 项目名称规范:必须符合 Dart 包名规则(字母、数字、下划线,首字符非数字),否则创建失败;
- 组织域名(--org) :建议用真实的公司 / 个人域名(如
com.zhangsan),避免上架 App 时包名冲突; - 覆盖文件(--overwrite) :慎用!会覆盖
android/、ios/等目录下的现有代码,建议先备份; - 平台支持:创建桌面 / Web 平台后,需安装对应平台的开发环境(如 Windows 需安装 Visual Studio,macOS 需安装 Xcode);
- 离线模式:需确保之前通过
flutter pub get缓存过项目依赖(缓存目录:~/.pub-cache),否则会失败。
五、常用命令总结(快速查找)
| 需求 | 命令示例 |
|---|---|
| 默认创建应用 | flutter create my_app |
| 自定义名称 + 组织 + 描述 | flutter create --project-name shop --org com.mycompany --description "电商APP" shop_app |
| 只创建移动端(iOS+Android) | flutter create --platforms ios,android mobile_app |
| 创建极简项目 | flutter create --empty empty_app |
| 修复现有项目 | cd 项目目录 && flutter create . |
| 创建 Flutter 模块(集成到原生) | flutter create --template module native_module |
如果需要更特殊的配置(如指定插件支持的平台、自定义 iOS 最低版本等),可以参考 flutter create --help 查看完整参数~