dart run 命令
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
命令中:
-
要启用
assert
断言,加入--enable-asserts
命令行参数:$ dart run --enable-asserts tool/debug.dart
-
若要使用 Dart 开发者工具 来调试和做性能分析,加入
--observe
命令行参数:$ dart run --observe tool/debug.dart
了解更多使用 Dart 开发者工具进行调试的信息,请查阅文档: 在 Dart 命令行中使用开发者工具。
运行 dart run --help
获取更多信息。
开启实验性功能
如果在开发中想尝试实验性功能,可以使用 实验性功能开关。