跳到主内容

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

如果程序名称与软件包名称不匹配,请使用 <package name>:<program name> 的形式。例如,要运行 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 命令添加以下一个或多个常用调试选项

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

启用实验性功能

#

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