Flutter create 命令使用指南

209 阅读5分钟

一、核心语法(必记)

创建 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 .  # 注意末尾的 "." 表示当前目录(现有项目)
  • 支持的平台值:iosandroidwindowslinuxmacosweb(多个平台用逗号分隔);
  • 若要添加桌面平台(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

四、注意事项(避坑指南)

  1. 项目名称规范:必须符合 Dart 包名规则(字母、数字、下划线,首字符非数字),否则创建失败;
  2. 组织域名(--org) :建议用真实的公司 / 个人域名(如 com.zhangsan),避免上架 App 时包名冲突;
  3. 覆盖文件(--overwrite) :慎用!会覆盖 android/ios/ 等目录下的现有代码,建议先备份;
  4. 平台支持:创建桌面 / Web 平台后,需安装对应平台的开发环境(如 Windows 需安装 Visual Studio,macOS 需安装 Xcode);
  5. 离线模式:需确保之前通过 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 查看完整参数~