Инструменты для съемки пакетов DART.
Отказ от ответственности: это не официально поддерживаемый продукт Google.
Эти инструменты лучше всего работают от источника. Чтобы получить источники, клонируйте surveyor , как это:
$ git clone https://github.com/pq/surveyor.git
Оттуда вы можете запустить examples .
dart run example/api_surveyor.dart <path_to_project>
Будет анализировать проекты на данном пути и определить использование нескольких конкретных API.
async идентификатора dart run example/async_surveyor.dart <path_to_project>
Будет анализировать проекты на данном пути и определить места, где "async" используется в качестве простого идентификатора. Эти места будут создавать ошибки, если async станет зарезервированным ключевым словом.
Обратите внимание, что это генерирует много выводов. Чтобы убедиться, что ничто из этого не потеряно, рассмотрите возможность перенаправления в файл. Например:
dart run example/async_surveyor.dart <path> 2>&1 | tee survey_out.txt
dart run example/error_surveyor.dart <path_to_project>
Будет анализировать проекты на данном пути, фильтрация на ошибки.
dart run example/lint_surveyor.dart <path_to_project>
Будет анализировать проекты на данном пути и определить нарушения правил ворса (пользовательские правила или те, которые определены package:linter ).
dart run example/doc_surveyor/lib/main.dart <path_to_project>
Проанализирует проект на данном пути, отмечающем общественных членов, которым отсутствуют документы API.
Образец прогона производит выход, такой как этот:
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>
Проанализируют проект на данном пути и представит список найденных Widget дочернего родителя 2 грамма.
Образец прогона создает файл CSV с таким содержимым:
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
(Обратите внимание, что по умолчанию зависимости пакета будут установлены только в том случае, если файл .packages отсутствует в аналитическом проекте. Если вы хотите убедиться, что зависимости от пакета (повторно) установлены, запустите с помощью опции --force-install .)
См. Также package:pub_crawl , который можно использовать для извлечения источников пакетов для анализа из Pub.
Это очень в процессе работы. Пожалуйста, подайте запросы на функции, ошибки и любые отзывы в трекере выпуска.
Спасибо!