Flutter Assets Gen
项目结构说明
本项目为命令行工具示例,包含以下目录结构:
- 应用入口位于
bin/目录 - 核心库代码位于
lib/目录 - 单元测试示例位于
test/目录
使用指南
安装方式
- 通过命令添加为开发依赖:
flutter pub add --dev flutter_assets_gen
- 或手动在
pubspec.yaml中添加:
dev_dependencies:
flutter_assets_gen: ^latest_version
基本使用步骤
- 在项目根目录下执行
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_paths和include_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
注意事项
- 请确保在
pubspec.yaml中已正确声明assets路径 - 生成的资源文件将输出至
lib/<output_dir>目录下 - 建议将生成的文件纳入版本控制
- 每次修改配置后需重新执行生成命令