Flutter Assets Gen

项目结构说明

本项目为命令行工具示例,包含以下目录结构:

  • 应用入口位于 bin/ 目录
  • 核心库代码位于 lib/ 目录
  • 单元测试示例位于 test/ 目录

使用指南

安装方式

  1. 通过命令添加为开发依赖:
flutter pub add --dev flutter_assets_gen
  1. 或手动在 pubspec.yaml 中添加:
dev_dependencies:
  flutter_assets_gen: ^latest_version

基本使用步骤

  1. 在项目根目录下执行
dart run flutter_assets_gen

启用监听模式

当配置中启用 auto_detection: true 时,可使用监听模式自动检测资源变动并重新生成:

TODO: 待开发

示例:资源结构与使用方式

假设资源目录如下:

assets/
  images/
    logo.png
    icons/
      home.png
      settings.png

生成后的 Dart 文件将提供类型安全的资源访问方式:

// 使用自动生成的资源类
Image.asset(Assets.images.logo);
Image.asset(Assets.images.icons.home);

配置项说明

⚠️ 配置规则:当某个路径同时出现在 exclude_pathsinclude_paths 中时,以 exclude_paths 为准,即优先排除。

完整配置示例

flutter_assets_gen:
  # [可选] 输出目录,需位于 lib 下。默认值:generated
  output_dir: generated

  # [可选] 是否开启自动监听资源变动。默认值:true
  auto_detection: true

  # [可选] 是否在资源名中包含上级目录名。默认值:true
  named_with_parent: true

  # [可选] 生成的文件名(不含 .dart 后缀)。默认值:assets
  output_filename: assets

  # [可选] 生成的类名。默认值:Assets
  class_name: Assets

  # [可选] 拆分资源名用的正则表达式。默认值:"[-_]"
  filename_split_pattern: "[-_]"

  # [可选] 要排除的路径列表。默认值:[](不排除任何路径)  
  exclude_paths: []

  # [可选] 要包含的路径列表。默认值:[](默认包含所有路径,除非被排除)  
  include_paths: []

  # [可选] 是否在路径前添加包名前缀,例如:your_app/assets/images/cat.png  
  # 默认值:false
  leadingWithPackageName: false

单个配置示例

flutter_assets_gen:
  output_dir: generated
  output_filename: assets
  class_name: Assets
  exclude_paths: []

多配置示例

支持多个配置块,可生成多个资源类:

flutter_assets_gen:
  - output_dir: generated
    output_filename: assets
    class_name: Assets
    exclude_paths: []

  - output_dir: generated
    output_filename: yh_assets
    class_name: YHAssets
    exclude_paths: []

发布

dart format .   # 格式化代码
dart analyze .  # 静态分析
dart pub publish --dry-run  # 检查潜在问题
dart pub login
dart pub publish

注意事项

  1. 请确保在 pubspec.yaml 中已正确声明 assets 路径
  2. 生成的资源文件将输出至 lib/<output_dir> 目录下
  3. 建议将生成的文件纳入版本控制
  4. 每次修改配置后需重新执行生成命令