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
獲取更多資訊。
開啟實驗性功能
如果在開發中想嘗試實驗性功能,可以使用 實驗性功能開關。