Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
112 lines (86 sloc) 3.43 KB
title description
A tool for building, testing, and running Dart code.

The build_runner package provides general-purpose commands for generating files, and for optionally testing the generated files or serving both source and generated files. Read this page for an overview of using build_runner, with links to where you can find more information. For details of using build_runner with a specific package, see the documentation for that package.

**If you're a web developer:** You can use the [`webdev` tool][webdev] instead of directly using build_runner to build and serve web apps.

The build_runner commands work with builders—packages that use the Dart build system to generate output files from input files. For example, the json_serializable and built_value_generator packages define builders that generate Dart code.

Although the Dart build system is a good alternative to reflection (which has performance issues) and macros (which Dart's compilers don't support), it can do more than just read and write Dart code. For example, the sass_builder package implements a builder that generates .css files from .scss and .sass files.

Setting up build_runner

To use build_runner, add a dev dependency on build_runner to your app's pubspec:

    # ···
    build_runner: ^1.0.0
    build_test: ^0.10.3

Depending on build_test is optional; do it if you'll be testing your code.

As usual after pubspec.yaml changes, run pub get or pub upgrade:

$ pub get

Using built-in commands

How you use the build_runner commands depends on whether you're using the Dart SDK or the Flutter SDK. Here are examples of using the build_runner build command:

$ # From a directory that contains a pubspec.yaml file:
$ pub run build_runner build  # Dart SDK
$ flutter pub run build_runner build  # Flutter SDK

The build_runner package includes the following commands:

build : Performs a one-time build.

serve : Runs a development server. Instead of directly using this command, you can use webdev serve, which has convenient default behavior.

test : Runs tests.

watch : Launches a build server that watches for edits to input files. Responds to changes by performing incremental rebuilds.

More information

If you're working on web-specific code, see the webdev page.

For details on using build_runner, see the following:

You can’t perform that action at this time.