Awesome
These packages provide libraries for generating, compiling and serving Dart code.
Getting started with build_runner
build
Defines the interfaces for creating a Builder
which is a way of doing codegen
that is compatible across build systems (pub, bazel, standalone runner).
For packages doing code generation this should generally be the only package against which there is a public dependency. Packages may have a dev_dependency on one or more of the other packages.
build_config
Support for parsing build.yaml
files. Used by build_runner
.
build_modules
Support for discovering the sub-modules within packages and creating summaries
of those modules. Used by build_web_compilers
but should not be used directly
by most users.
build_resolvers
An implementation of the Resolver
interface to use the analyzer during build
steps.
build_runner
Provides utilities to enact builds and a way to automatically run builds based on configuration.
This package should generally be a dev_dependency as it is used to run
standalone builds. The only exception would be wrapping the build
and watch
methods with some other package.
build_test
Stub implementations for classes in Build
and some utilities for running
instances of builds and checking their outputs.
This package generally only be a dev_dependency as it introduces a dependency on package:test. The exception to that would be if you were creating another testing-only package that wraps this one.
build_web_compilers
Provides the dart2js
and dartdevc
support for your package. To use this
package you should add it as a dev_dependency.
If you are using the automated build scripts, your project will automatically start being compiled with dartdevc, and you can start developing with chrome without any configuration.
<!-- TODO: scratch_space -->Examples
The example
directory has an example of a build with custom builders which generate outputs
into both the source tree and a hidden generated directory. Try a build with
dart run build_runner build -o web:deploy
to see what the output looks like.
Most projects should not need custom builders.