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 runfără fișier într-un folder fărăpubspec.yaml: eroare, nu există un proiect de rulat.- Să măsori viteza programului cu
dart runimediat după pornire: compilarea JIT încălzește codul. Pentru măsurători, foloseștedart 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.