目錄

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 獲取更多資訊。

開啟實驗性功能

如果在開發中想嘗試實驗性功能,可以使用 實驗性功能開關