Home

Awesome

Build Status

These packages provide libraries for generating, compiling and serving Dart code.

Getting started with build_runner

General FAQ

Windows FAQ

FAQ for Builder authors.

Additional Docs

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.