Index: sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart |
diff --git a/sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart b/sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart |
index 1665be9d538da3d3c4db8d5e71e1673dfe779d42..21e6fed60ed8b30bd5f262645cc25cb0bcd76907 100644 |
--- a/sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart |
+++ b/sdk/lib/_internal/pub/lib/src/barback/pub_package_provider.dart |
@@ -11,6 +11,7 @@ import 'package:path/path.dart' as path; |
import '../io.dart'; |
import '../package_graph.dart'; |
+import '../preprocess.dart'; |
import '../sdk.dart' as sdk; |
/// An implementation of barback's [PackageProvider] interface so that barback |
@@ -32,7 +33,18 @@ class PubPackageProvider implements PackageProvider { |
assert(components.first == 'lib'); |
components[0] = 'dart'; |
var file = assetPath(path.joinAll(components)); |
- return new Future.value(new Asset.fromPath(id, file)); |
+ |
+ // Barback may not be in the package graph if there are no user-defined |
+ // transformers being used at all. The "$pub" sources are still provided, |
+ // but will never be loaded. |
+ var barback = _graph.packages['barback']; |
+ if (barback == null) { |
+ return new Future.value(new Asset.fromPath(id, file)); |
+ } |
+ |
+ var contents = readTextFile(file); |
+ contents = preprocess(contents, barback.version, path.toUri(file)); |
+ return new Future.value(new Asset.fromString(id, contents)); |
} |
// "$sdk" is a pseudo-package that provides access to the Dart library |