目录

dart run 命令支持运行文件、当前 package 或者当前 package 的依赖中运行Dart程序。该命令提供了以前在 pub run 和 Dart VM 工具里提供的功能。如果想从任意位置运行程序,可以使用 pub global 命令。

dart run [options] [<DART_FILE> | <PACKAGE_TARGET>] [args]

下面的例子演示了如何创建并且运行一个 Dart 程序:

$ dart create myapp
$ cd myapp
$ dart run

运行 Dart 文件

#

可以通过传入 Dart 文件的相对路径来运行一个 Dart 程序:

$ dart run tool/debug.dart

运行 package 中的 Dart 程序

#

本节说明的前提是你在 package 的根目录执行 dart run 命令。更多关于 package 目录结构的介绍,请查阅 package 结构约定

运行依赖 package 中的 Dart 程序

#

你可以运行当前 package 所依赖的任何 package 的 Dart 程序,只要它在 bin 目录下。运行时请指定依赖的 package 名和程序名。如果程序名与 package 名相同,则可以省略。

例如,在 package 的根目录,想运行一个名为 bar 的依赖 package 中的 main 程序(bin/bar.dart),使用如下命令:

$ dart run bar

如果程序名和 package 名不同,则需要使用 <package 名>:<程序名> 的形式来运行程序。比如 bin/baz.dart 程序在名为 bar 的 package 中, 我们就可以这样运行:

$ dart run bar:baz

放在 bin 目录下的 Dart 文件是可以被 Dart 命令行工具直接访问的,依赖 package 中的其他目录都是私有的。

在当前 package 中运行 Dart 程序

#

当当前的路径与 package 名匹配时(即文件夹名称与 pubspec 中的 name 属性相同),可以省略 package 名。如果程序名与 package 名匹配(也就是它是 main 程序),也可以省略程序名。

dart run 是运行 Dart 程序最短的形式,它会运行当前 package 的主程序。例如,如果你在名为 foo 的 package 根目录执行下面命令,实际上会运行 bin/foo.dart 文件:

$ dart run

如果程序名和 package 名不同,需要使用 :<程序名> 的形式来运行程序,比如运行当前 package 中的 bin/baz.dart 文件:

$ dart run :baz

要运行在当前 package 但不在 bin 目录的程序时,通过传递相对路径运行(如前文所示):

$ dart run tool/debug.dart

给 main() 传递参数

#

若你需要 main() 函数传递参数,在命令行后面添加参数即可:

$ dart run tool/debug.dart arg1 arg2

在当前 package 中运行 main 程序需要添加 package 名,比如要传递参数并运行位于 foo package 根目录中的 bin/foo.dart 程序:

$ dart run foo arg1 arg2

调试

#

若要启用调试功能,将下面的调试选项加入到 dart run 命令中:

运行 dart run --help 获取更多信息。

开启实验性功能

#

如果在开发中想尝试实验性功能,可以使用 实验性功能开关