Resource generator
Feature
Generate a resource class from assets/ folder, similar to R class on Android.
Configurations
This generator supports generate common assets folder and assets folder divided by flavors.
Without flavor
Required structure for assets folder:
<your-project>
├── <assets-folder>/
├── images/ (for images)
├── vectors/ (for vector images or svg)
├── translations/ (for localizations)
├── fonts/ (for fonts)
├── scripts/ (for shell scripts)
├── configs/ (for JSON configurations)
├── raws/ (for raw files)
├── lib/
├── pubspec.yaml
With flavor
Required structure for assets folder:
<your-project>
├── <assets-folder>/
├── all/ <common for all flavors>
├── images/ (for images)
├── vectors/ (for vector images or svg)
├── translations/ (for localizations)
├── fonts/ (for fonts)
├── scripts/ (for shell scripts)
├── configs/ (for JSON configurations)
├── raws/ (for raw files)
├── <flavor-0>
├── ... (same as all/)
├── <flavor-1>
├── ... (same as all/)
├── <flavor-2>
├── ... (same as all/)
├── ...
├── lib/
├── pubspec.yaml
Usage
Activate the executable:
dart pub global activate resources_generator
cd into project root:
cd <your-project>
Execute the generator:
dart pub global run resources_generator:generate -i <assets-folder> -o <output-folder> -p <optional-package> -f
or execute automatically when assets changes:
dart pub global run resources_generator:monitor -i <assets-folder> -o <output-folder> -p <optional-package> -f
with:
-ior--input, optional, is the input assets folder, default toassets.-oor--output, optional, is the output folder, default tolib/resources.-por--package, optional, is the package name if assets is in a package/module instead of an application..-for--with-flavor, optional, will generate the resource class into flavors.
Note
-
For generating fonts, font file names must have this format:
<family>-<attr-1>-<attr-2>.ttf, with attrs to be font style and font weight. These attrs are optional.
Example: Roboto.ttf, Roboto-Italic.ttf, Roboto-Italic-w600.ttf -
For generating colors, all json files must have
colorsas file name prefix. Based on the numbers of file with this prefix, the generator will generate the suitable resource file.
Example:- For single file:
├── <assets-folder>/ ├── colors/ ├── colors.json - For multiple files (multi variants colors):
├── <assets-folder>/ ├── colors/ ├── colors_dark.json ├── colors_light.json
- For single file:
Libraries
- generators/color_generator
- generators/config_generator
- generators/font_generator
- generators/image_generator
- generators/pubspec_generator
- generators/raw_generator
- generators/root_generator
- generators/script_generator
- generators/string_generator
- generators/value_generator
- generators/vector_generator
- process
- util/arguments
- util/constants
- util/dart_keywords
- util/extensions/file_ext
- util/extensions/object.ext
- util/extensions/scope_ext
- util/extensions/yaml_editor_ext
- util/filename_util
- util/font_util
- util/logger
- util/path_util
- util/sort_algorithm
- util/writer