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
获取更多信息。
开启实验性功能
#如果在开发中想尝试实验性功能,可以使用 实验性功能开关。