flutter_chen_generator 2.0.1 copy "flutter_chen_generator: ^2.0.1" to clipboard
flutter_chen_generator: ^2.0.1 copied to clipboard

A comprehensive Flutter code generation toolkit for assets, icons and more.

Flutter Chen Generator #

🚀 一个强大的Flutter代码生成工具包,包含多个实用的代码生成器。

✨ 功能特性 #

📁 资源生成器 (Assets Generator) #

  • 🔄 自动扫描assets目录并生成Dart常量
  • 🧠 智能驼峰命名转换,保持原有驼峰格式
  • 🔧 处理文件命名冲突(同名不同扩展名)
  • 📝 自动更新pubspec.yaml配置

🧹 未使用资源扫描/清理 #

  • 🔍 扫描项目内未被引用的资源文件
  • 🎯 支持按目录、文件类型配置扫描范围
  • 🧠 同时识别资源路径字符串和生成后的 Assets.xxx 常量引用
  • ⚠️ 默认仅预览,开启 --delete 后才会实际删除
  • 📁 删除未使用资源后自动清理空目录

🎨 图标字体生成器 (IconFont Generator) #

  • 📄 解析iconfont.json文件自动生成Dart图标常量
  • 🏷️ 智能命名转换(支持横线转驼峰)
  • 🔧 支持多种JSON格式(iconfont.cn、自定义格式等)
  • 🎯 类型安全的IconData常量

📱 ScreenUtil适配生成器 (ScreenUtil Generator) #

  • 🔍 智能扫描Dart文件中的数值属性
  • 🎯 自动添加合适的ScreenUtil后缀 (.w, .h, .sp, .r)
  • 🧠 智能识别属性类型(宽度、高度、字体、圆角)
  • 📦 自动添加ScreenUtil依赖导入

⚙️ 配置管理 #

  • 📄 支持YAML配置文件 (flutter_chen_generator.yaml)
  • 🏆 配置优先级:命令行参数 > YAML配置 > 默认配置
  • 🎛️ 分模块配置,每个生成器独立配置
  • 🔧 一键生成示例配置文件

🚀 快速开始 #

安装 #

# 方式一:全局安装
dart pub global activate flutter_chen_generator
# 使用工具
flutter_chen_generator assets/iconfont/screenutil

# 方式二:项目依赖安装
# pubspec.yaml
dev_dependencies:
  flutter_chen_generator: latest version
# 使用工具
dart run flutter_chen_generator assets/iconfont/screenutil

基本使用 #

# 创建配置文件
flutter_chen_generator init

# 生成资源文件
flutter_chen_generator assets

# 扫描未使用资源
flutter_chen_generator assets-clean

# 生成图标字体
flutter_chen_generator iconfont

# 添加ScreenUtil适配
flutter_chen_generator screenutil

# 查看帮助
flutter_chen_generator --help

配置文件支持 #

创建 flutter_chen_generator.yaml 配置文件:

# 创建默认配置文件
flutter_chen_generator init

# 创建到指定路径
flutter_chen_generator init --output my_config.yaml

示例配置文件:

# 资源生成器配置
assets:
  assets-dir: assets
  output: lib/generated/assets.dart
  class-name: Assets
  short-naming: true

# 未使用资源扫描/清理配置
assets-clean:
  scan-targets:
    - lib
    - test
  scan-extensions:
    - dart
  ignore-assets:
    - assets/kChart
  ignore-targets:
    - build
    - .dart_tool
    - .git
    - lib/generated/assets.dart
  delete: false
  verbose: false
  
# 图标字体生成器配置  
iconfont:
  input: assets/fonts/iconfont.json
  output: lib/generated/iconfont.dart
  class-name: IconFont
  font-family: ComIcon
  
# ScreenUtil适配生成器配置
screenutil:
  input: lib
  ignore:
    - build/
    - test/
    - generated/
  dry-run: false
  verbose: false

配置优先级 #

工具支持三层配置优先级:

  1. 命令行参数(最高优先级)
  2. YAML配置文件
  3. 默认配置(最低优先级)
# 命令行参数会覆盖配置文件中的设置
flutter_chen_generator assets --output lib/my_assets.dart
flutter_chen_generator assets-clean --delete

直接使用特定生成器 #

# 资源生成器
flutter_chen_assets --output lib/assets.dart

# 未使用资源扫描/清理
flutter_chen_generator assets-clean -t lib -t test -e dart
flutter_chen_generator assets-clean --delete

# 图标字体生成器  
flutter_chen_iconfont --input assets/fonts/icons.json

# ScreenUtil适配生成器
flutter_chen_screenutil --input lib --dry-run

📖 详细文档 #

🧹 未使用资源扫描/清理 #

命令 #

# 仅预览未使用资源
flutter_chen_generator assets-clean

# 扫描指定目录
flutter_chen_generator assets-clean -t lib -t test

# 限制扫描扩展名
flutter_chen_generator assets-clean -e dart -e yaml

# 实际删除未使用资源
flutter_chen_generator assets-clean --delete

支持识别的引用方式 #

  • 直接路径引用
Image.asset('assets/images/logo.png');
  • 生成的资源常量引用
Image.asset(Assets.imagesLogo);

assets-clean 配置说明 #

assets-clean:
  scan-targets:
    - lib
    - test
  scan-extensions:
    - dart
  ignore-assets:
    - assets/kChart
  ignore-targets:
    - build
    - .dart_tool
    - .git
    - lib/generated/assets.dart
  delete: false
  verbose: false

字段说明:

  • scan-targets: 扫描哪些目录或文件
  • scan-extensions: 扫描哪些扩展名,默认 dart
  • ignore-assets: 忽略哪些资源文件或目录
  • ignore-targets: 忽略哪些扫描目标文件或目录
  • delete: 是否直接删除未使用资源,默认 false
  • verbose: 是否输出详细日志

配置优先级仍然是:

  1. 命令行参数
  2. flutter_chen_generator.yaml
  3. 默认配置

🎯 配置文件查找规则 #

工具会按以下顺序自动查找配置文件:

  1. 指定的配置文件路径(如果提供)
  2. 当前目录下的 flutter_chen_generator.yaml
  3. 项目根目录(包含pubspec.yaml的目录)下的 flutter_chen_generator.yaml

💡 使用技巧 #

1. 团队协作配置 #

# 将配置文件提交到版本控制
git add flutter_chen_generator.yaml
git commit -m "feat: add code generator config"

2. 环境相关配置 #

# 开发环境使用详细输出
flutter_chen_generator screenutil --verbose

# 生产环境使用预览模式
flutter_chen_generator screenutil --dry-run

3. CI/CD 集成 #

# .github/workflows/flutter.yml
- name: Generate Code
  run: |
    flutter_chen_generator assets
    flutter_chen_generator iconfont
    flutter_chen_generator screenutil --dry-run  # 预览模式检查

4. 批量处理 #

# 按模块分别处理
flutter_chen_generator assets
flutter_chen_generator iconfont  
flutter_chen_generator screenutil --input lib/pages
flutter_chen_generator screenutil --input lib/widgets

🔮 未来计划 #

  • 🌐 国际化脚本: 自动项目国际化、导入导出excel

🛠️ 开发 #

# 克隆仓库
git clone https://github.com/Er-Dong-Chen/flutter_chen_generator.git

# 安装依赖
dart pub get

# 运行测试
dart test

# 本地运行
dart bin/flutter_chen_generator.dart --help

# 本地测试配置文件
dart bin/flutter_chen_generator.dart init

🤝 贡献 #

欢迎提交Issue和Pull Request!

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开Pull Request

📄 许可证 #

MIT License - 查看 LICENSE 文件了解详情


⭐ 如果这个工具对你有帮助,请给个星标支持一下!

3
likes
145
points
144
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A comprehensive Flutter code generation toolkit for assets, icons and more.

Repository (GitHub)
View/report issues

Topics

#generator #codegen #tools #build #cli

License

MIT (license)

Dependencies

analyzer, args, path, yaml

More

Packages that depend on flutter_chen_generator