[重磅发布] Flutter Chen Generator 必备脚本工具

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.pnghomeIcon
  • assets/images/user/avatar.jpguserAvatar
  • assets/json/config.jsonjsonConfig

完整命名模式

  • assets/images/home/icon.pngimagesHomeIcon
  • assets/images/user/avatar.jpgimagesUserAvatar
  • assets/json/config.jsonjsonConfig

冲突处理

当同一文件夹存在同名不同扩展名文件时:

  • icon.pnghomeIcon (第一个保持原名)
  • icon.svghomeIconSvg (后续添加扩展名后缀)
  • icon.jpghomeIconJpg

智能驼峰处理

保持原有的驼峰格式:

  • inviteShare.pnghomeInviteShare (保持驼峰)
  • user_profile.pnghomeUserProfile (转换驼峰)

💡 使用技巧

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 文件了解详情

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

相关推荐
renke33642 小时前
Flutter for OpenHarmony:数字涟漪 - 基于扩散算法的逻辑解谜游戏设计与实现
算法·flutter·游戏
一只大侠的侠2 小时前
Flutter开源鸿蒙跨平台训练营 Day14React Native表单开发
flutter·开源·harmonyos
子春一2 小时前
Flutter for OpenHarmony:音律尺 - 基于Flutter的Web友好型节拍器开发与节奏可视化实现
前端·flutter
微祎_3 小时前
Flutter for OpenHarmony:单词迷宫一款基于 Flutter 构建的手势驱动字母拼词游戏,通过滑动手指连接字母路径来组成单词。
flutter·游戏
ujainu3 小时前
护眼又美观:Flutter + OpenHarmony 鸿蒙记事本一键切换夜间模式(四)
android·flutter·harmonyos
ujainu3 小时前
让笔记触手可及:为 Flutter + OpenHarmony 鸿蒙记事本添加实时搜索(二)
笔记·flutter·openharmony
一只大侠的侠3 小时前
Flutter开源鸿蒙跨平台训练营 Day 13从零开发注册页面
flutter·华为·harmonyos
一只大侠的侠4 小时前
Flutter开源鸿蒙跨平台训练营 Day19自定义 useFormik 实现高性能表单处理
flutter·开源·harmonyos
恋猫de小郭5 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
一只大侠的侠9 小时前
Flutter开源鸿蒙跨平台训练营 Day 10特惠推荐数据的获取与渲染
flutter·开源·harmonyos