细说flutter——项目结构目录和pubspec.ymal

592 阅读3分钟

Flutter项目中,目录结构和pubspec.yaml文件是非常重要的组成部分,它们定义了项目的结构依赖管理以及如何构建和运行项目

目录结构,做ios和android:

image.png

我们要写的东西在main.dart

什么是 pubspec.yaml 文件

image.png

pubspec.yaml 文件是 FlutterDart 项目的配置文件,使用 YAML(Yet Another Markup Language)语法编写,负责管理项目的依赖项资源环境配置等信息。

主要功能包括:

  • 声明依赖项:管理项目需要的库或插件
  • 项目元数据:定义项目名称、版本、描述
  • 资源管理:声明项目中需要用到的图片、字体、图标等资源
  • 环境配置:定义项目的 Dart SDK 版本要求,确保项目在兼容的 Dart 版本中运行

在 Dart 项目和 Flutter 项目中,pubspec.yaml 文件略有不同,主要区别在于 Flutter 项目中会有特定的 Flutter 配置,如资源、插件等。

pubspec.yaml 文件的基本结构

一个典型的 pubspec.yaml 文件包含以下几个部分:

  1. Flutter项目目录结构 Flutter项目的标准目录结构通常如下所示:
name: my_flutter_app     # 项目名称
description: A new Flutter project  # 项目描述
version: 1.0.0+1        # 项目版本
publish_to: 'none'      # 设置是否发布到 Dart 生态,'none' 表示不发布

environment:            # 环境要求
  sdk: ">=3.0.0 <4.0.0" # Dart SDK 版本要求

dependencies:           # 项目依赖
  flutter:
    sdk: flutter
  http: ^0.13.0

dev_dependencies:       # 开发依赖
  flutter_test:
    sdk: flutter

flutter:                # Flutter 项目特有的配置
  assets:
    - assets/images/logo.png
  fonts:
    - family: Roboto
      fonts:
        - asset: fonts/Roboto-Regular.ttf

name、description 和 version

  • name:项目的名称,通常是小写字母,并使用下划线分隔多个单词
  • description:项目的简短描述
  • version:项目的版本号,格式为 主版本号.次版本号.修订号+构建号

publish_to

用于指定项目是否发布到 Dart 的 pub.dev 包管理平台。默认是 'none',表示不发布;如果要发布,可以省略或设置为 'pub.dev'。

environment

定义项目所需要的 Dart SDK 版本。示例中 sdk: ">=3.0.0 <4.0.0" 表示项目要求 Dart SDK 版本必须在 3.0.0 及以上,但小于 4.0.0。

依赖管理:普通依赖与开发依赖

dependencies

定义了项目的普通依赖,意味着这些库会在运行时被使用。

示例:

dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.0  # HTTP 库,用于网络请求
  provider: ^6.0.0  # 状态管理库
  cupertino_icons: ^1.0.2

  # 状态管理
  provider: ^6.1.2

  # 屏幕适配相关
  flutter_screenutil: ^5.9.0-beta

  # 网络请求
  dio: ^5.3.4

  # toast提示
  oktoast:^3.3.1

  # 获取版本信息设备信息等
  package_info_plus: ^4.0.2
  device_info_plus: ^8.1.0

  # 权限申请
  permission_handler: ^10.2.0

  # 跳转到外部应用、scheme
  url_launcher: ^6.1.6

  # webview
  webview_flutter: ^4.2.2

  # 显示html文本
  flutter_html: ^3.0.0-alpha.6

  # 本地化存储
  shared_preferences: ^2.0.15

版本号定义规则:

  • ^0.13.0:表示允许使用 0.13.0 及以上的小版本,但不允许破坏性变更的版本
  • 如果版本号前没有符号,表示依赖指定版本

dev_dependencies

用于声明开发期间使用的依赖,这些库不会在生产环境中使用。

示例:

dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: ^2.0.0  # 代码生成工具

配置环境要求

environment:
  sdk: ">=3.0.0 <4.0.0"

管理资源文件:图片、字体、图标

添加图片资源

flutter:
  assets:
    - assets/images/logo.png
    - assets/images/background.jpg

添加字体资源

flutter:
  fonts:
    - family: Roboto
      fonts:
        - asset: fonts/Roboto-Regular.ttf
        - asset: fonts/Roboto-Bold.ttf
          weight: 700

设置项目版本

version: 1.0.0+1
  • 1.0.0 是应用的版本号
  • +1 是应用的构建号

版本号更新规则:

  • 主版本号:有重大更改时更新
  • 次版本号:有向后兼容的新功能时更新
  • 修订号:有向后兼容的 Bug 修复时更新

配置 Flutter 插件

dependencies:
  flutter:
    sdk: flutter
  path_provider: ^2.0.0  # 插件,用于访问文件系统路径

配置本地化支持

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter

在这个例子中,
my_flutter_app是应用名称,
environment指定了Flutter SDK的版本范围,
dependencies列出了应用的依赖,
dev_dependencies列出了开发时的依赖,
flutter部分定义了使用的资源文件和字体。

总结

pubspec.yaml文件是 DartFlutter 项目的核心配置文件,它负责管理依赖、环境、资源等关键信息。在开发过程中,合理配置 pubspec.yaml 文件可以有效地提升项目的组织性和可维护性。