@@ -26,11 +26,11 @@ import 'package:observe/transformer.dart' show ObservableTransformer;
2626class AngularTransformerGroup implements TransformerGroup {
2727 final Iterable <Iterable > phases;
2828
29- AngularTransformerGroup (TransformOptions options)
30- : phases = _createPhases (options);
29+ AngularTransformerGroup (TransformOptions options, { BarbackMode mode} )
30+ : phases = _createPhases (options, mode );
3131
3232 AngularTransformerGroup .asPlugin (BarbackSettings settings)
33- : this (_parseSettings (settings.configuration));
33+ : this (_parseSettings (settings.configuration), mode : settings.mode );
3434}
3535
3636TransformOptions _parseSettings (Map args) {
@@ -147,12 +147,17 @@ Transformer _staticGenerator(TransformOptions options, Resolvers resolvers) {
147147 ]);
148148}
149149
150- List <List <Transformer >> _createPhases (TransformOptions options) {
150+ List <List <Transformer >> _createPhases (
151+ TransformOptions options, BarbackMode mode) {
151152 var resolvers = new Resolvers (options.sdkDirectory);
152153 return [
153154 [ new ObservableTransformer () ],
154155 [ new HtmlDartReferencesGenerator (options) ],
155- [ new di.InjectorGenerator (options.diOptions, resolvers ) ],
156+ // During a pub build share the resolver to save memory, but for pub serve
157+ // create a new resolver for any non-serial transformers or they will
158+ // deadlock.
159+ [ new di.InjectorGenerator (options.diOptions, mode == BarbackMode .RELEASE
160+ ? resolvers : new Resolvers (options.sdkDirectory)) ],
156161 [ _staticGenerator (options, resolvers) ]
157162 ];
158163}
0 commit comments