Flutter资源文件生成插件sheepu_assets_generator的使用

Flutter资源文件生成插件sheepu_assets_generator的使用

sheepu_assets_generator

sheepu_assets_generator 是一个用于自动生成单个项目或多模块项目中资源文件配置(yaml)和常量的 Flutter 工具。

pub package GitHub stars GitHub forks GitHub license GitHub issues

[]

语言支持:英语 | 简体中文


使用

环境

你需要将 pub 的 bin 路径添加到系统的 PATH 中。

平台 缓存位置
macOS 或 Linux $HOME/.pub-cache/bin
Windows* %APPDATA%\Pub\Cache\bin

更多关于 pub global 的信息可以参考 官方文档


激活 sheepu_assets_generator

运行以下命令来全局安装插件:

dart pub global activate sheepu_assets_generator

命令

帮助

查看帮助信息:

sheepu_agen -h

演示

运行一个简单的示例:

sheepu_agen -t d -s -r lwu

所有命令

以下是所有可用命令的详细说明:

-h, --[no-]help 帮助信息 -p, --path Flutter 项目的根路径(默认值为 “.”) -f, --folder 资源文件的根目录(默认值为 “assets”) -w, --[no-]watch 是否持续监控资源文件的变化(默认值为开启) -t, --type pubspec.yaml 中的类型 “d” 表示目录(如 “assets/images/”) “f” 表示文件(如 “assets/images/xxx.jpg”)(默认值为 “d”) -s, --[no-]save 是否保存参数到本地 如果仅运行 sheepu_agen 而不带任何参数,则会执行保存的参数 -o, --out 常量类的生成路径(默认值为 “lib”) -r, --rule 资源常量名称的命名规则 “lwu” (lowercase_with_underscores):assets_images_xxx_jpg “uwu” (uppercase_with_underscores):ASSETS_IMAGES_XXX_JPG “lcc” (lowerCamelCase):assetsImagesXxxJpg(默认值为 “lwu”) -c, --class 常量类的名称(默认值为 “Assets”) –const-ignore 忽略某些常量的正则表达式


---

## Dart

### 在项目中使用

在项目中使用时,可以通过以下方式引用资源:

```dart
Image.asset(Assets.assets_images_xxx_jpg);

在模块中使用

在模块中使用时,需要指定包名:

Image.asset(
  Assets.assets_images_xxx_jpg,
  package: Assets.package,
);

完整示例

假设你有一个 Flutter 项目,其结构如下:

project/
├── assets/
│   └── images/
│       ├── logo.png
│       └── background.jpg
├── lib/
│   └── main.dart
└── pubspec.yaml

1. 配置 pubspec.yaml

确保你的 pubspec.yaml 文件中正确配置了资源文件:

flutter:
  assets:
    - assets/images/logo.png
    - assets/images/background.jpg

2. 生成资源常量

运行以下命令生成资源常量:

sheepu_agen -p . -f assets/images -t f -r lcc -c MyAssets

这将生成一个名为 MyAssets 的类,其中包含以驼峰命名法命名的资源常量。

3. 使用生成的常量

main.dart 中使用生成的常量:

import 'package:project/lib/my_assets.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Image.asset(MyAssets.assetsImagesLogoPng),
              SizedBox(height: 20),
              Image.asset(MyAssets.assetsImagesBackgroundJpg),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter资源文件生成插件sheepu_assets_generator的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter资源文件生成插件sheepu_assets_generator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


sheepu_assets_generator 是一个 Flutter 插件,用于自动生成资源文件的引用代码,方便开发者在项目中使用资源文件(如图片、字体等)。通过这个插件,你可以减少手动编写资源引用的工作量,并避免因路径错误导致的问题。

以下是 sheepu_assets_generator 的基本使用步骤:

1. 安装插件

首先,你需要在 pubspec.yaml 文件中添加 sheepu_assets_generator 作为开发依赖项:

dev_dependencies:
  sheepu_assets_generator: ^1.0.0

然后运行 flutter pub get 来安装插件。

2. 添加资源文件

pubspec.yaml 文件中,确保你已经添加了需要使用的资源文件。例如:

flutter:
  assets:
    - assets/images/
    - assets/icons/
  fonts:
    - family: CustomFont
      fonts:
        - asset: assets/fonts/CustomFont-Regular.ttf
        - asset: assets/fonts/CustomFont-Bold.ttf

3. 生成资源引用代码

在项目根目录下运行以下命令,生成资源文件的引用代码:

flutter pub run sheepu_assets_generator

运行该命令后,插件会自动生成一个 Dart 文件(通常是 assets.dart),其中包含了所有资源文件的引用代码。

4. 使用生成的资源引用代码

生成的 assets.dart 文件会包含类似以下的代码:

class Assets {
  static const String imagesLogo = 'assets/images/logo.png';
  static const String iconsHome = 'assets/icons/home.png';
  static const String fontsCustomFontRegular = 'assets/fonts/CustomFont-Regular.ttf';
  static const String fontsCustomFontBold = 'assets/fonts/CustomFont-Bold.ttf';
}

你可以在项目中直接使用这些常量来引用资源文件,例如:

Image.asset(Assets.imagesLogo);
Text('Hello, world!', style: TextStyle(fontFamily: 'CustomFont'));

5. 自动生成(可选)

为了简化开发流程,你可以将 flutter pub run sheepu_assets_generator 添加到项目的构建脚本中,或者在 IDE 中配置自动运行该命令。这样,每次添加或修改资源文件时,引用代码都会自动更新。

6. 自定义配置(可选)

sheepu_assets_generator 支持一些自定义配置选项,你可以在 pubspec.yaml 文件中进行配置。例如:

sheepu_assets_generator:
  output: lib/generated/assets.dart
  exclude:
    - assets/images/old/
回到顶部