目次

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

プログラム名がパッケージ名と一致しない場合は、<パッケージ名>:<プログラム名>の形式を使用します。たとえば、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

デバッグ

#

デバッグを有効にするには、これらの一般的なデバッグオプションの1つ以上をdart runコマンドに追加します

  • assertを有効にするには、--enable-assertsフラグを追加します

    $ dart run --enable-asserts tool/debug.dart
  • Dart DevToolsによるデバッグとパフォーマンス分析を有効にするには、--observeフラグを追加します

    $ dart run --observe tool/debug.dart

    Dart DevToolsを使用したデバッグの詳細については、コマンドラインアプリでのDevToolsの使用を参照してください。

他のデバッグオプションの詳細については、dart run --helpを実行してください。

実験的な機能の有効化

#

現在開発中の新機能と拡張機能を有効にするには、実験的なフラグを使用します。