Flutter Assets 脚本

Flutter Assets 脚本

// bin/generate_assets.dart
import 'dart:io';
import 'package:path/path.dart' as path;

void main() async {
  print('🚀 Starting LdAssets generation...');
  try {
    await LdAssetsGenerator.generate();
    print('🎉 LdAssets generation ***pleted!');
  } catch (e) {
    print('❌ Error generating LdAssets: $e');
  }
}

class LdAssetsGenerator {
  static Future<void> generate() async {
    final pubspecFile = File('pubspec.yaml');
    if (!await pubspecFile.exists()) {
      print('❌ pubspec.yaml not found');
      return;
    }

    final content = await pubspecFile.readAsString();
    print('📄 Reading pubspec.yaml...');

    final assets = _parseAssetsFromPubspec(content);

    if (assets.isEmpty) {
      print('⚠️ No assets found in pubspec.yaml');
      print('💡 Please check if your pubspec.yaml has assets configured like this:');
      print('''
flutter:
  assets:
    - assets/images/
    - assets/icons/
    - assets/fonts/
''');
      return;
    }

    print('📦 Found ${assets.length} assets:');
    for (final asset in assets) {
      print('   - $asset');
    }

    final dartCode = _generateDartCode(assets);

    // 确保目录存在
    final generatedDir = Directory('lib/base_service');
    if (!await generatedDir.exists()) {
      await generatedDir.create(recursive: true);
    }

    final outputFile = File('lib/base_service/ld_assets.dart');
    await outputFile.writeAsString(dartCode);

    print('✅ LdAssets class generated with ${assets.length} assets');
    print('📁 Output: lib/base_service/ld_assets.dart');
  }

  static List<String> _parseAssetsFromPubspec(String content) {
    final lines = content.split('\n');
    final assets = <String>[];
    bool inFlutterSection = false;
    bool inAssetsSection = false;
    int flutterIndentLevel = 0;
    int assetsIndentLevel = 0;

    for (int i = 0; i < lines.length; i++) {
      final line = lines[i];
      final trimmedLine = line.trim();

      // 查找 flutter 部分
      if (trimmedLine == 'flutter:') {
        inFlutter
转载请说明出处内容投诉
CSS教程网 » Flutter Assets 脚本

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买