Flutter create 命令详解:从基础到进阶用法

全面梳理 flutter create 命令的语法、常用参数与典型场景示例,涵盖项目创建、平台指定、模板选择与已有项目修复。

Flutter&DartFlutterflutter create命令行脚手架

flutter create 是 Flutter 工具链里最基础、也是每个项目的起点命令。它不仅能从零创建一个完整的应用工程,还能创建插件、模块、纯 Dart 包,甚至帮我们把缺失了某些文件的旧项目补全。本文系统梳理它的语法、常用参数与典型使用场景。

基础语法

命令的基本格式如下:

flutter create [可选参数] <项目输出目录>

规则很简单:

  • 如果目标目录不存在,会自动创建一个全新的项目;
  • 如果目标目录已经是一个 Flutter 项目,则会”修复”——补齐缺失的脚手架文件,而不会覆盖你已有的代码。

最简单的用法,创建一个名为 my_first_app 的应用:

flutter create my_first_app

自定义项目信息

实际开发中,我们往往希望在创建时就把包名、描述等信息定下来,避免后续再去逐个文件改动:

flutter create --project-name flutter_shop \
  --description "一款 Flutter 电商应用" \
  --org com.mycompany \
  my_shop_project

几个关键参数:

  • --project-name:Dart 包名,必须符合 Dart 包命名规范(只能包含字母、数字和下划线,且首字符不能是数字)。
  • --description:项目描述,会写入 pubspec.yaml
  • --org:组织标识,使用反向域名格式(如 com.mycompany)。它直接影响 Android 的包名和 iOS 的 Bundle ID,建议使用真实拥有的域名,避免上架时与他人冲突。

指定目标平台

默认情况下 Flutter 会为所有支持的平台生成目录。如果只想针对特定平台,可以用 --platforms 精确控制:

# 只生成 iOS 和 Android
flutter create --platforms ios,android my_mobile_app

# 移动端 + Web
flutter create --platforms ios,android,web my_multi_platform_app

# 在当前目录为已有项目补上 Windows 桌面支持
flutter create --platforms windows .

支持的平台包括:iosandroidwindowslinuxmacosweb。需要注意,桌面端与 Web 平台需要本地预先安装对应的开发环境,否则即便生成了目录也无法构建运行。

选择项目模板

通过 --template(简写 -t)可以决定要创建哪种类型的工程:

# 极简应用:去掉默认的计数器示例代码
flutter create --empty my_empty_app

# Flutter 模块,用于混合开发,嵌入原生工程
flutter create --template module my_flutter_module

# 插件项目
flutter create --template plugin --platforms ios,android my_plugin

# 基于 FFI 的插件,直接调用 C/C++
flutter create --template plugin_ffi --platforms windows,linux my_ffi_plugin

可选的模板类型:

模板用途
app默认值,标准应用工程
moduleFlutter 模块,便于嵌入现有原生项目
plugin平台插件,封装原生能力
plugin_ffi基于 FFI 的插件,直连 C/C++
package纯 Dart 包,无平台相关代码

其中 --empty 会生成一个不含计数器示例的最小化应用,适合从干净的起点开始写业务代码。

修复已有项目

当项目缺失了某些平台目录或脚手架文件时(比如从同事那里 clone 下来后发现没有 ios/ 目录),在项目根目录执行:

cd my_existing_project
flutter create .

它会补齐缺失文件而保留已有代码。如果确实需要强制覆盖(谨慎使用,会覆盖现有代码):

flutter create --overwrite .

其他常用参数

# 指定 Android 端语言(默认 Kotlin,可切换为 Java)
flutter create --android-language java my_app

# 离线模式,不联网拉取依赖(需依赖已缓存到本地)
flutter create --offline --no-pub my_offline_app

# 输出详细日志,排查创建过程中的问题
flutter create -v my_app

小结

  • 项目名必须符合 Dart 包名规范;
  • --org 建议使用真实域名,从一开始就把包名定准,避免后期修改的连锁问题;
  • --platforms 让你按需生成平台目录,桌面/Web 需要预装对应环境;
  • --template 决定工程类型,从应用到插件、纯包都能覆盖;
  • 对已有项目执行 flutter create . 可补齐脚手架,--overwrite 要谨慎使用。

掌握这些参数,就能在创建项目的第一步把工程结构和关键标识一次配置到位,省去后续大量返工。