dart run în Dart

Comanda dart Dart 2.10

Rulează un program Dart: un fișier, programul principal al proiectului sau un executabil dintr-un pachet.

Sintaxă
dart run fisier.dart [argumente]
dart run                         # bin/<nume_proiect>.dart din proiectul curent
dart run pachet[:executabil]     # executabil dintr-un pachet
dart run --enable-asserts fisier.dart

Ce face dart run

dart run main.dart compilează fișierul în memorie (JIT) și îl rulează imediat. Argumentele scrise după numele fișierului ajung în parametrul lui main(List<String> argumente). Forma scurtă dart main.dart face același lucru.

Într-un proiect cu pubspec.yaml, dart run fără fișier rulează bin/<nume_proiect>.dart. dart run pachet:executabil pornește un program dintr-o dependență (de exemplu dart run build_runner build). Dacă dependențele lipsesc, dart run rulează întâi automat dart pub get.

assert-urile sunt ignorate implicit; opțiunea --enable-asserts le activează (util în timpul dezvoltării). Pentru un program care pornește foarte repede și rulează fără SDK, compilează-l cu dart compile exe.

Parametri

Parametru Descriere
fisier.dart Fișierul cu funcția main. Lipsește: se rulează programul principal al proiectului.
argumente Tot ce urmează după fișier ajunge în main.
--enable-asserts Activează instrucțiunile assert.

Exemple

Exemplul 1: Rularea proiectului cu și fără argumente

Proiectul magazin are bin/magazin.dart; programul folosește primul argument ca nume.

// bin/magazin.dart
import 'package:magazin/magazin.dart';

void main(List<String> argumente) {
  final nume = argumente.isEmpty ? 'vizitator' : argumente.first;
  print('Bun venit în magazin, $nume!');
  print('Total coș: ${totalCos([24.5, 7.25, 12])} lei');
}

// în terminal:
// dart run
// dart run bin/magazin.dart Ana

Rezultat în terminal

Bun venit în magazin, vizitator!
Total coș: 43.75 lei
Bun venit în magazin, Ana!
Total coș: 43.75 lei

Exemplul 2: Activarea assert-urilor

Fără opțiune, assert este ignorat și programul continuă; cu --enable-asserts se oprește cu eroare.

// bin/verifica.dart
void main() {
  const stoc = -3;
  assert(stoc >= 0, 'stocul nu poate fi negativ');
  print('Stoc: $stoc');
}

// în terminal:
// dart run bin/verifica.dart
// dart run --enable-asserts bin/verifica.dart

Rezultat în terminal

Stoc: -3
Unhandled exception:
'file:///Users/ana/proiecte/magazin/bin/verifica.dart': Failed assertion: line 3 pos 10: 'stoc >= 0': stocul nu poate fi negativ

Greșeli frecvente

  • Opțiunile VM (ca --enable-asserts) puse după fișier: atunci ajung în argumentele programului. Scrie-le înainte de numele fișierului.
  • dart run fără fișier într-un folder fără pubspec.yaml: eroare, nu există un proiect de rulat.
  • Să măsori viteza programului cu dart run imediat după pornire: compilarea JIT încălzește codul. Pentru măsurători, folosește dart compile exe.

Comenzi înrudite

  • main: Funcția de la care pornește orice program Dart; poate primi argumentele din linia de comandă.
  • dart create: Creează un proiect Dart nou dintr-un șablon: aplicație de consolă, pachet, server sau aplicație web.
  • dart compile: Compilează un program Dart într-un executabil nativ, în JavaScript, WebAssembly sau într-un snapshot.
  • assert: Verifică o condiție în timpul dezvoltării; în producție și la dart run implicit, assert este ignorat.
  • dart pub: Managerul de pachete Dart: adaugă, descarcă și actualizează dependențele de pe pub.dev.