@@ -26,11 +26,11 @@ import 'package:observe/transformer.dart' show ObservableTransformer;
26
26
class AngularTransformerGroup implements TransformerGroup {
27
27
final Iterable <Iterable > phases;
28
28
29
- AngularTransformerGroup (TransformOptions options)
30
- : phases = _createPhases (options);
29
+ AngularTransformerGroup (TransformOptions options, { BarbackMode mode} )
30
+ : phases = _createPhases (options, mode );
31
31
32
32
AngularTransformerGroup .asPlugin (BarbackSettings settings)
33
- : this (_parseSettings (settings.configuration));
33
+ : this (_parseSettings (settings.configuration), mode : settings.mode );
34
34
}
35
35
36
36
TransformOptions _parseSettings (Map args) {
@@ -147,12 +147,17 @@ Transformer _staticGenerator(TransformOptions options, Resolvers resolvers) {
147
147
]);
148
148
}
149
149
150
- List <List <Transformer >> _createPhases (TransformOptions options) {
150
+ List <List <Transformer >> _createPhases (
151
+ TransformOptions options, BarbackMode mode) {
151
152
var resolvers = new Resolvers (options.sdkDirectory);
152
153
return [
153
154
[ new ObservableTransformer () ],
154
155
[ 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)) ],
156
161
[ _staticGenerator (options, resolvers) ]
157
162
];
158
163
}
0 commit comments