Werkzeuge zur Vermessung von Dartpaketen.
Haftungsausschluss: Dies ist kein offiziell unterstütztes Google -Produkt.
Diese Tools werden am besten von der Quelle ausgeführt. Um die Quellen zu erhalten, klonen Sie den surveyor wie folgt:
$ git clone https://github.com/pq/surveyor.git
Von dort aus können Sie die examples ausführen.
dart run example/api_surveyor.dart <path_to_project>
Analysiert Projekte auf dem angegebenen Pfad und identifizieren die Verwendung einiger spezifischer APIs.
async -Kennung dart run example/async_surveyor.dart <path_to_project>
Analysiert Projekte auf dem angegebenen Pfad und identifiziert Orte, an denen "async" als einfacher Kenner verwendet wird. Diese Orte würden zu Fehlern führen, wenn async zu einem reservierten Schlüsselwort wird.
Beachten Sie, dass dies eine Menge Ausgabe erzeugt. Um sicherzustellen, dass nichts davon verloren geht, sollten Sie in eine Datei umgeleitet werden. Zum Beispiel:
dart run example/async_surveyor.dart <path> 2>&1 | tee survey_out.txt
dart run example/error_surveyor.dart <path_to_project>
Analysiert Projekte auf dem angegebenen Pfad und filtert auf Fehler.
dart run example/lint_surveyor.dart <path_to_project>
Analyse Projekte auf dem angegebenen Pfad und identifizieren Verstöße gegen Lint -Regeln (benutzerdefinierte Regeln oder durch package:linter definierte Verstöße).
dart run example/doc_surveyor/lib/main.dart <path_to_project>
wird das Projekt auf dem angegebenen Pfad analysieren, der öffentliche Mitglieder mit dem Fehlen von API -Dokumenten fehlt.
Ein Beispiellauf erzeugt eine solche Ausgabe:
122 public members
Members without docs:
Void • <path-to-provider-repo>/packages/provider/lib/src/proxy_provider.dart • 107:1
NumericProxyProvider • <path-to-provider-repo>/packages/provider/lib/src/proxy_provider.dart • 177:1
Score: 0.98
dart run example/widget_surveyor/lib/widget_surveyor.dart <path_to_project>
Analysiert das Projekt auf dem angegebenen Pfad und präsentiert eine Liste von Widget Child-Eltern-2-Gramm.
Ein Beispiellauf erzeugt eine CSV -Datei mit solchen Inhalten:
AppBar -> Text, 1
Center -> Column, 1
Column -> Text, 3
FloatingActionButton -> Icon, 1
MaterialApp -> MyHomePage, 1
Scaffold -> AppBar, 1
Scaffold -> Center, 1
Scaffold -> FloatingActionButton, 1
null -> MaterialApp, 1
null -> MyApp, 1
null -> Scaffold, 1
(Beachten Sie, dass standardmäßige Paketabhängigkeiten nur dann installiert werden, wenn eine .packages Datei im in Analyse befindlichen Projekt nicht vorhanden ist. Wenn Sie sicherstellen möchten, dass die Paketabhängigkeiten (erneut) installiert sind, werden Sie mit der Option --force-install " ausgeführt.)
Siehe auch package:pub_crawl , mit dem Paketquellen für die Analyse aus Pub abgerufen werden können.
Dies ist sehr viel in Arbeit. Bitte stellen Sie Feature -Anfragen, Fehler und jegliches Feedback im Problem Tracker ab.
Danke!