Barback is an asset build system. It is the library underlying
pub's asset transformers in
pub build and
Given a set of input files and a set of transformations (think compilers, preprocessors and the like), it will automatically apply the appropriate transforms and generate output files. When inputs are modified, it automatically runs the transforms that are affected.
To learn more, see here.
Future.microtaskrather than async and await to account for upcoming behavior changes with async methods.
AssetNode.whenAvailableto be a generic method to fix a new strong mode error.
CancelableFutureto match the new
Future.thentype signature. The
onValueparameter now has a return type of
StaticPackageProviderclass to more efficiently handle immutable, untransformed packages.
AggregateTransformer type. Aggregate transformers transform groups of
assets for which no single asset is primary. For example, one could be used to
merge all images in a directory into a single file.
message getter to
Fix a bug where transformers would occasionally emit stale output after their inputs changed.
Breaking change: when an output of a lazy transformer is requested, that transformer will run long enough to generate the output, then become lazy again. Previously, it would become eager as soon as an asset had been requested.
Transformer.declareOutputs once for
Lazy transformers' laziness is preserved when followed by declaring transformers, or by normal transformers for which the lazy outputs aren't primary.
Fix a bug where reading the primary input using
had slightly different behavior than reading it using
Fix a crashing bug when
Barback.getAllAssets is called synchronously after
creating a new
Don't warn if a lazy or declaring transformer doesn't emit outputs that it has declared. This is valid for transformers like dart2js that need to read their primary input in order to determine whether they should run.
DeclaringTransformer.declareOutputs to return non-
Future values if they
Fix a deadlock bug when a lazy primary input to a lazy transformer became
dirty while the transformer's
apply method was running.
Run declaring transformers with lazy inputs eagerly if the inputs become available.
Transformer.isPrimary now takes an
AssetId rather than an
DeclaringTransform now only exposes the primary input's
than the primary
DeclaringTransform no longer supports
Transform.logger.fine function that doesn't print its messages by
default. When using Barback with pub in verbose mode, these messages will be
Transform.hasInput function that returns whether or not a given
secondary input exists.
Transformer.allowedExtensions now supports extensions containing multiple
periods, such as
Transforms now pass their primary inputs through to the next phase by default.
A transformer may still overwrite its primary input without causing a
collision. If a transformer doesn't overwrite its primary input, it may cause
it not to be passed through by calling
Transform.consumePrimary. The primary
input will be consumed by default if a transformer throws an error.
If an input requested with
Transform.readInputAsString cannot be found, an
will be thrown. This was always what the documentation said, but previously a
MissingInputException was thrown instead.
If a transformer calls
Transform.logger.error, the transformer will now be
considered to have failed after it finishes running
apply(). This means that
its outputs will not be consumed by future transformers and its primary input
will not be passed through to the next phase.
If a transform calls
Transform.hasInput on an input that
doesn't exist, the transform will be re-run if that input is created in the
Add this to your package's pubspec.yaml file:
dependencies: barback: "^0.15.2+14"
You can install packages from the command line:
$ pub get
$ flutter packages get
Alternatively, your editor might support
pub get or
Check the docs for your editor to learn more.
Now in your Dart code, you can use:
|0.15.2+14||Jan 8, 2018|
|0.15.2+13||Oct 5, 2017|
|0.15.2+12||Sep 22, 2017|
|0.15.2+11||May 3, 2017|
|0.15.2+10||Mar 23, 2017|
|0.15.2+9||Aug 8, 2016|
|0.15.2+8||May 17, 2016|
|0.15.2+7||Sep 18, 2015|
|0.15.2+6||Jul 27, 2015|
|0.15.2+5||Jul 20, 2015|
We analyzed this package, and provided a score, details, and suggestions below.
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]
Detected platforms: Flutter, other
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 API.
The description is too long.
Search engines will display only the first part of the description. Try to keep it under 180 characters.
Maintain an example.
None of the files in your
example/directory matches a known example patterns. Common file name patterns include:
example.dartor you could also use
|Dart SDK||>=1.22.0 <2.0.0|