Automatically generate index / barrel files with all the exports needed for your library.
There will be no more breaking changes
-
Activate:
dart/flutter pub global activate index_generator
-
Create
index_generator.yaml
file or add in yourpubspec.yaml
file:
index_generator:
exclude:
- "**.g.dart"
# Define the paths of the folders in which to generate the index files
libraries:
- directory_path: lib
- You can generate index files with:
<dart|flutter> pub global run index_generator
index_generator:
# You can define the default name of the index file
default_file_name: barrel
# You can define general filters for all indexes
exclude:
- "**.g.dart"
- "{_,**/_}*.dart"
libraries:
- directory_path: lib
# You can define specific filters for this index
include:
# You can define specific export folders paths
- "src/**"
# You can define specific export dart packages in index file.
exports:
- package: package:args/args.dart
show:
- ArgResults
hide:
- ArgParser
- directory_path: generator
# You can define the name of the index file
file_name: main
# Disable/Enable the generated code disclaimer
disclaimer: false
# Include/Exclude the library keyword in generated file
include_library: true
# Comments added on the generated file, like copyright
comments: |
Copyright (c) 2020 BreX900
# Documentation added on the generated file above the library name
# Note: docs are only included when include_library is true
docs: |
Automatically generate index / barrel / library files
with all the export needed for your library.
# You can define the name of the library to use within the index
name: index_generator
# Use package-style exports for internal files (e.g., 'package:app/main.dart' instead of 'main.dart')
use_package_exports: true
# Custom output path for the generated index file (optional)
# If not specified, the file will be created in the directory_path
output_path: lib/generated
- directory_path: Path in which to create the index file. All filters will get the relative path from this directory
- output_path: Custom output path for the generated index file. If not specified, the file will be created in the directory_path
- file_name: Prioritize ownership in folders, otherwise it will use the one defined in the generator with
default_file_name
key. If it is missing, if the folder islib
it will use the package name otherwise the folder name - name: The name of the library used in the index dart file by the
library
keyword - include_library: Include or exclude the
library
keyword in the generated file. Defaults totrue
- docs: Documentation comments added above the library declaration. Only included when
include_library
istrue
- include | exclude: You can define filters that exclude or include files to be included in the index. The filters are passed paths relative to the index file. You can use Glob expressions.
- exports: You can define specific export dart packages in index file.
You can use
package
to export a dart file package or dart core library. - use_package_exports: When enabled, generates package-style exports for internal files (e.g.,
'package:app/main.dart'
instead of'main.dart'
). This is useful for libraries that want to ensure consistent import paths. Defaults tofalse
.
--help
command output:
-s, --settings=<Define a yaml file path.> If not present use the "index_generator.yaml" file if it exists otherwise use the "pubspec.yaml" file.
-v, --[no-]verbose Print verbose logs
-h, --help
index_generator
can be run via build_runner. To do so, add the following dependancies:
dev_dependencies:
build_runner: ^2.3.3
index_generator: ^3.5.0
and enable it in build.yaml
file
targets:
$default:
builders:
index_generator:
enabled: true
To generate use <dart|flutter> pub run build_runner <build|watch>
Please file feature requests and bugs at the issue tracker.
- mek_assets: Automatically generate dart classes / flutter pubspec entries for your assets files.
- mek_data_class: Generate
hashCode
,==
,toString
,copyWith
andchange
methods with low code.