Index: sdk/lib/_internal/pub/lib/src/command/serve.dart |
diff --git a/sdk/lib/_internal/pub/lib/src/command/serve.dart b/sdk/lib/_internal/pub/lib/src/command/serve.dart |
index fea0f1fcdf6df1bc1d6ca5696f3d4321cfb9a15f..ce8db31dd2ea7328041b23ae7a0ac9ad0e4ab491 100644 |
--- a/sdk/lib/_internal/pub/lib/src/command/serve.dart |
+++ b/sdk/lib/_internal/pub/lib/src/command/serve.dart |
@@ -37,7 +37,18 @@ class ServeCommand extends PubCommand { |
// to pub's top-level error-handling machinery. |
var completer = new Completer(); |
- return PubPackageProvider.create(entrypoint).then((provider) { |
+ return new Future.value().then((_) { |
+ // The server relies on an up-to-date lockfile, so install first if |
+ // needed. |
+ if (!entrypoint.isLockFileUpToDate()) { |
+ log.message("Dependencies have changed, installing..."); |
+ return entrypoint.installDependencies().then((_) { |
+ log.message("Dependencies installed!"); |
+ }); |
+ } |
+ }).then((_) { |
+ return PubPackageProvider.create(entrypoint); |
+ }).then((provider) { |
var port; |
try { |
port = int.parse(commandOptions['port']); |