Flutter Chen Generator
🚀 一个强大的Flutter代码生成工具包,目前包含资源文件自动生成器,未来将添加更多实用工具。
✨ 功能特性
📁 资源生成器 (Assets Generator)
- 🔄 自动扫描assets目录并生成Dart常量
- 🧠 智能驼峰命名转换,保持原有驼峰格式
- 🔧 处理文件命名冲突(同名不同扩展名)
- 📝 自动更新pubspec.yaml配置
- 🚫 支持忽略指定文件夹
- ⚙️ 丰富的命令行参数配置
- 📦 支持短命名和完整路径命名两种模式
🚀 安装
全局安装(推荐)
bash
dart pub global activate flutter_chen_generator
本地依赖
yaml
dev_dependencies:
flutter_chen_generator: ^1.0.0
📖 使用方法
统一入口使用
bash
# 生成资源文件
flutter_chen_generator assets
# 查看帮助
flutter_chen_generator --help
# 查看资源生成器帮助
flutter_chen_generator assets --help
直接使用资源生成器
bash
# 基本使用
flutter_chen_assets
# 自定义配置
flutter_chen_assets \
--assets-dir my_assets \
--output lib/my_assets.dart \
--class-name MyAssets \
--full-naming \
--ignore web,fonts,temp
📋 参数说明
资源生成器参数
参数 | 短参数 | 说明 | 默认值 |
---|---|---|---|
--assets-dir |
-a |
资源目录 | assets |
--output |
-o |
输出文件 | lib/generated/assets.dart |
--class-name |
-c |
类名 | Assets |
--short-naming |
- | 简短命名 | true |
--full-naming |
- | 完整命名 | false |
--ignore |
-i |
忽略文件夹 | 无 |
--help |
-h |
帮助信息 | - |
📂 生成示例
文件结构
arduino
assets/
├── images/
│ ├── home/
│ │ ├── icon.png
│ │ └── icon.svg
│ └── user/
│ └── avatar.jpg
└── json/
└── config.json
生成的代码 (短命名模式)
dart
/// 自动生成的资源文件索引,请勿手动修改此文件
/// Generated by flutter_chen_assets_generator
class Assets {
Assets._();
static const String homeIcon = 'assets/images/home/icon.png';
static const String homeIconSvg = 'assets/images/home/icon.svg';
static const String jsonConfig = 'assets/json/config.json';
static const String userAvatar = 'assets/images/user/avatar.jpg';
}
更新的pubspec.yaml
yaml
flutter:
assets:
- assets/
- assets/images/
- assets/images/home/
- assets/images/user/
- assets/json/
🎯 命名规则
短命名模式(默认)
assets/images/home/icon.png
→homeIcon
assets/images/user/avatar.jpg
→userAvatar
assets/json/config.json
→jsonConfig
完整命名模式
assets/images/home/icon.png
→imagesHomeIcon
assets/images/user/avatar.jpg
→imagesUserAvatar
assets/json/config.json
→jsonConfig
冲突处理
当同一文件夹存在同名不同扩展名文件时:
icon.png
→homeIcon
(第一个保持原名)icon.svg
→homeIconSvg
(后续添加扩展名后缀)icon.jpg
→homeIconJpg
智能驼峰处理
保持原有的驼峰格式:
inviteShare.png
→homeInviteShare
(保持驼峰)user_profile.png
→homeUserProfile
(转换驼峰)
💡 使用技巧
1. CI/CD 集成
yaml
# .github/workflows/flutter.yml
- name: Generate Assets
run: flutter_chen_assets --no-update-pubspec
2. 忽略特定文件夹
bash
# 忽略web相关文件
flutter_chen_assets --ignore web,fonts,node_modules
3. 多项目配置
bash
# 项目A
flutter_chen_assets -a assets -o lib/assets.dart
# 项目B
flutter_chen_assets -a resources -o lib/resources.dart -c Resources
🔮 未来计划
- 🌐 国际化自动化脚本: 自动把项目国际化、导入导出excel
- 📱 ScreenUtil自动化脚本: 自动智能添加ScreenUtil后缀
- 🎨 图标生成器: 自动生成iconfont图标类
📄 许可证
MIT License - 查看 LICENSE 文件了解详情
⭐ 如果这个工具对你有帮助,请给个星标支持一下!