build_runner_core 0.3.1+4

  • Installing
  • Versions
  • 73

Core functionality of the build_runner package. Exposes the imperative apis for running pure Dart builds for package:build.
Build Status Issues related to build_runner_core Pub Package Version Latest Dartdocs Join the chat on Gitter


  • Removed the constraint on reading files that output to cache from files that output to source.


  • Bug Fix: Don't output a packages symlink within the packages directory.


  • Restore new keyword for a working release on Dart 1 VM.
  • Bug Fix: Don't include any non-lib assets from dependencies in the build, even if they are a source in a target.


  • Bug Fix: Don't include any non-lib assets from dependencies in the build, even if they are a source in a target.
  • Release broken on Dart 1 VM.


  • Migrated glob tracking to a specialized node type to fix dart-lang/build#1702.


Breaking Changes

  • Implementations of BuildEnvironment must now implement the finalizeBuild method. There is a default implementation if you extend BuildEnvironment that is a no-op.
    • This method is invoked at the end of the build that allows you to do arbitrary additional work, such as creating merged output directories.
  • The assumeTty argument on IOEnvironment has moved to a named argument since null is an accepted value.
  • The outputMap field on BuildOptions has moved to the IOEnvironment class.

New Features/Updates

  • Added a outputSymlinksOnly option to IOEnvironment constructor, that causes the merged output directories to contain only symlinks, which is much faster than copying files.
  • Added the FinalizedAssetView class which provides a list of all available assets to the BuildEnvironment during the build finalization phase.
    • outputMap has moved from BuildOptions to this constructor, as a named argument.
  • The OverridableEnvironment now supports overriding the new finalizeBuild api.
  • The number of concurrent actions per phase is now limited (currently to 16), which should help with memory and cpu usage for large builds.


  • Support package:json_annotation v1.


  • Tag errors from cached actions when they are printed.


  • Changed the default file caching logic to use an LRU cache.


  • Clarify wording for conflicting output directory options. No behavioral differences.
  • Reduce the memory consumption required to create an output dir significantly.
  • Increased the upper bound for the sdk to <3.0.0.


  • Allow reuse cache between machines with different OS


  • The hash dir for the asset graph under .dart_tool/build is now based on a relative path to the build script instead of the absolute path.
    • This enables .dart_tool/build directories to be reused across different computers and directories for the same project.


New Features

  • The BuildPerformance class is now serializable, it has a fromJson constructor and a toJson instance method.
  • Added BuildOptions.logPerformanceDir, performance logs will be continuously written to that directory if provided.
  • Added support for global_options in build.yaml of the root package.
  • Allow overriding the default Resolvers implementation.
  • Allows building with symlinked files. Note that changes to the linked files will not trigger rebuilds in watch or serve mode.

Breaking changes

  • BuildPhasePerformance.action has been replaced with BuildPhasePerformance.builderKeys.
  • BuilderActionPerformance.builder has been replaced with BuilderActionPerformance.builderKey.
  • BuildResult no longer has an exception or stackTrace field.
  • Dropped failOnSevere arguments. Severe logs are always considered failing.

Internal changes

  • Remove dependency on package:cli_util.


Initial release, migrating the core functionality of package:build_runner to this package.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  build_runner_core: ^0.3.1+4

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:build_runner_core/build_runner_core.dart';
Version Uploaded Documentation Archive
0.3.1+4 Aug 13, 2018 Go to the documentation of build_runner_core 0.3.1+4 Download build_runner_core 0.3.1+4 archive
0.3.1+3 Aug 13, 2018 Go to the documentation of build_runner_core 0.3.1+3 Download build_runner_core 0.3.1+3 archive
0.3.1+2 Aug 10, 2018 Go to the documentation of build_runner_core 0.3.1+2 Download build_runner_core 0.3.1+2 archive
0.3.1+1 Aug 9, 2018 Go to the documentation of build_runner_core 0.3.1+1 Download build_runner_core 0.3.1+1 archive
0.3.1 Aug 7, 2018 Go to the documentation of build_runner_core 0.3.1 Download build_runner_core 0.3.1 archive
0.3.0 Aug 1, 2018 Go to the documentation of build_runner_core 0.3.0 Download build_runner_core 0.3.0 archive
0.2.2+2 Jul 24, 2018 Go to the documentation of build_runner_core 0.2.2+2 Download build_runner_core 0.2.2+2 archive
0.2.2 Jul 18, 2018 Go to the documentation of build_runner_core 0.2.2 Download build_runner_core 0.2.2 archive
0.2.1+2 Jul 16, 2018 Go to the documentation of build_runner_core 0.2.1+2 Download build_runner_core 0.2.1+2 archive
0.2.1+1 Jul 6, 2018 Go to the documentation of build_runner_core 0.2.1+1 Download build_runner_core 0.2.1+1 archive

All 13 versions...

Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Aug 13, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0
  • pana: 0.11.8


Detected platforms: other

Primary library: package:build_runner_core/build_runner_core.dart with components: io, isolate, build, mirrors.


The description is too short.

Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

Package is pre-v1 release.

While there is nothing inherently wrong with versions of 0.*.*, it usually means that the author is still experimenting with the general direction of the API.

Maintain an example.

Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use build_runner_core.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0 <3.0.0
async >=1.13.3 <3.0.0 2.0.8
build >=0.12.7 <0.12.8 0.12.7+3
build_config ^0.3.1 0.3.1+2
build_resolvers ^0.2.0 0.2.2+2
collection ^1.14.0 1.14.11
convert ^2.0.1 2.0.2
crypto >=0.9.2 <3.0.0 2.0.6
glob ^1.1.0 1.1.7
graphs ^0.1.0 0.1.2+1
json_annotation ^1.0.0 1.1.0
logging ^0.11.2 0.11.3+2
meta ^1.1.0 1.1.6
path ^1.1.0 1.6.2
pool ^1.0.0 1.3.6
stream_transform ^0.0.13 0.0.14+1
watcher ^0.9.7 0.9.7+10
yaml ^2.1.0 2.1.15
Transitive dependencies
analyzer 0.32.4
args 1.5.0
charcode 1.1.2
cli_util 0.1.3+2
csslib 0.14.4+1
front_end 0.1.4
html 0.13.3+3
kernel 0.3.4
package_config 1.0.5
plugin 0.2.0+3
pub_semver 1.4.2
pubspec_parse 0.1.2+2
source_span 1.4.1
stack_trace 1.9.3
string_scanner 1.0.4
typed_data 1.1.6
utf 0.9.0+5
Dev dependencies
build_test ^0.10.0
json_serializable ^1.0.0
package_resolver ^1.0.2
source_gen ^0.9.0
test ^1.0.0
test_descriptor ^1.0.0
test_process ^1.0.0