Index: lib/src/executable.dart |
diff --git a/lib/src/executable.dart b/lib/src/executable.dart |
index f692c026ecddec99dcd1767ca01d506080ddfc08..7e577d04256b5c2d9ef3d1856974182e557b5e16 100644 |
--- a/lib/src/executable.dart |
+++ b/lib/src/executable.dart |
@@ -110,6 +110,14 @@ Future<int> runExecutable(Entrypoint entrypoint, String package, |
return exit_codes.NO_INPUT; |
} |
+ // If we're running an executable directly from the filesystem, make sure that |
+ // it knows where to load the packages. If it's a dependency's executable, for |
+ // example, it may not have the right packages directory itself. |
+ if (executableUrl.scheme == 'file') { |
+ // TODO(nweiz): use a .packages file once sdk#23369 is fixed. |
+ vmArgs.add('--package-root=${p.toUri(entrypoint.packagesDir)}'); |
+ } |
+ |
vmArgs.add(executableUrl.toString()); |
vmArgs.addAll(args); |