跳到主要内容

dart run

dart run 命令支持从命令行运行 Dart 程序——程序可以位于文件中、当前包中,或者当前包的依赖项中。此命令提供的功能以前在 pub run 和 Dart VM 工具中。要从任意位置运行程序,请使用 pub global 命令。

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

这是一个创建新应用并运行它的示例

$ dart create myapp
$ cd myapp
$ dart run

运行 Dart 文件

#

您可以通过传递相对路径来运行 Dart 文件

$ dart run tool/debug.dart

运行包中的程序

#

本节中的说明假设您正在从 Dart 包的顶层目录(当前包)执行 dart run 命令。有关 Dart 包的目录结构的信息,请参阅包布局约定

在依赖的包中

#

您可以运行分布在当前包所依赖的任何包的 bin 目录中的程序。要运行这样的程序,请指定依赖的包名称和程序名称。如果程序名称与包名称相同,则可以省略程序名称。

例如,假设您位于依赖于 bar 包的包的顶层目录中。要运行 bar 包中的主程序 (bin/bar.dart),您可以使用此命令

$ dart run bar

如果程序名称与包名称不匹配,请使用 <包名称>:<程序名称> 的形式。例如,要运行 bar 包中的程序 bin/baz.dart,请使用此命令

$ dart run bar:baz

bin 目录是唯一包含可见程序的位置。依赖包中的所有其他目录都是私有的。

在当前包中

#

当当前目录与包名称匹配时(即,您位于与 pubspec 中的 name 属性匹配的目录中),则可以省略包名称。如果程序名称与包名称匹配(即,它是主程序),则也可以省略程序名称。

这是 dart run 的最短形式,它运行当前包的主程序。例如,如果您位于 foo 包的顶层目录中,则此命令运行 bin/foo.dart

$ dart run

如果程序名称与包名称不匹配,则添加冒号和程序名称。例如,此命令运行当前包中的 bin/baz.dart

$ dart run :baz

要运行位于当前包中但不在 bin 目录中的程序,请传递相对路径(如前所示)

$ dart run tool/debug.dart

向 main() 函数提供参数

#

要向 main() 函数提供参数,请将它们放在命令的末尾

$ dart run tool/debug.dart arg1 arg2

当您运行当前包的主程序时,请添加包名称。这是一个在您位于 foo 包的顶层目录中时,使用参数运行 bin/foo.dart 的示例

$ dart run foo arg1 arg2

调试

#

要启用调试,请将以下一个或多个常用调试选项添加到您的 dart run 命令

  • 要启用 assert 语句,请添加 --enable-asserts 标志

    $ dart run --enable-asserts tool/debug.dart
  • 要通过 Dart DevTools 启用调试和性能分析,请添加 --observe 标志

    $ dart run --observe tool/debug.dart

    要了解有关使用 Dart DevTools 进行调试的更多信息,请参阅使用 DevTools 调试命令行应用

要了解有关其他调试选项的更多信息,请运行 dart run --help

启用实验性功能

#

要启用当前正在开发的新功能和增强功能,请使用实验性标志