| Index: sdk/lib/_internal/pub/lib/src/command/build.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/command/build.dart b/sdk/lib/_internal/pub/lib/src/command/build.dart
|
| index 2df2ecf18a1e6bf7530563538a1cb7c2750ebc1e..1c9e37ec3b9eeffc54aeb3249933cd00f6dded97 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/command/build.dart
|
| +++ b/sdk/lib/_internal/pub/lib/src/command/build.dart
|
| @@ -50,6 +50,7 @@ class BuildCommand extends PubCommand {
|
| cleanDir(target);
|
|
|
| var dart2jsTransformer;
|
| + var builtFiles = 0;
|
|
|
| return entrypoint.ensureLockFileIsUpToDate().then((_) {
|
| return entrypoint.loadPackageGraph();
|
| @@ -78,6 +79,14 @@ class BuildCommand extends PubCommand {
|
| () => server.barback.getAllAssets());
|
| }).then((assets) {
|
| return Future.wait(assets.map((asset) {
|
| + // In release mode, strip out .dart files since all relevant ones have
|
| + // been compiled to JavaScript already.
|
| + if (mode == BarbackMode.RELEASE && asset.id.extension == ".dart") {
|
| + return new Future.value();
|
| + }
|
| +
|
| + builtFiles++;
|
| +
|
| // Figure out the output directory for the asset, which is the same
|
| // as the path pub serve would use to serve it.
|
| var relativeUrl = barback.idtoUrlPath(entrypoint.root.name, asset.id);
|
| @@ -92,10 +101,8 @@ class BuildCommand extends PubCommand {
|
| // TODO(rnystrom): Should we display this to the user?
|
| return createFileFromStream(asset.read(), destPath);
|
| })).then((_) {
|
| - _copyBrowserJsFiles(dart2jsTransformer.entrypoints);
|
| - // TODO(rnystrom): Should this count include the JS files?
|
| - log.message("Built ${assets.length} "
|
| - "${pluralize('file', assets.length)}!");
|
| + builtFiles += _copyBrowserJsFiles(dart2jsTransformer.entrypoints);
|
| + log.message("Built $builtFiles ${pluralize('file', builtFiles)}!");
|
| });
|
| }).catchError((error) {
|
| // If [getAllAssets()] throws a BarbackException, the error has already
|
| @@ -110,11 +117,13 @@ class BuildCommand extends PubCommand {
|
| /// If this package depends directly on the `browser` package, this ensures
|
| /// that the JavaScript bootstrap files are copied into `packages/browser/`
|
| /// directories next to each entrypoint in [entrypoints].
|
| - void _copyBrowserJsFiles(Iterable<AssetId> entrypoints) {
|
| + ///
|
| + /// Returns the number of files it copied.
|
| + int _copyBrowserJsFiles(Iterable<AssetId> entrypoints) {
|
| // Must depend on the browser package.
|
| if (!entrypoint.root.dependencies.any(
|
| (dep) => dep.name == 'browser' && dep.source == 'hosted')) {
|
| - return;
|
| + return 0;
|
| }
|
|
|
| // Get all of the directories that contain Dart entrypoints.
|
| @@ -131,6 +140,8 @@ class BuildCommand extends PubCommand {
|
| _addBrowserJs(dir, "dart");
|
| _addBrowserJs(dir, "interop");
|
| }
|
| +
|
| + return entrypointDirs.length * 2;
|
| }
|
|
|
| // TODO(nweiz): do something more principled when issue 6101 is fixed.
|
|
|