持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情
dart_code_metrics | Dart Package (flutter-io.cn)
译时版本:4.19.1
Dart Code Metrics
注:可以在 网站上找到所有的文档
Dart Code Metrics 是一个静态分析工具,它可以帮助分析和改进代码质量。
- 报告 代码指标
- 为 dart analyzer 提供 额外的规则
- 检查反模式
- 检查 未使用的
*.dart文件 - 检查 未使用的 l10n (国际化文件)
- 检查 非必要的可空参数
- 可用于 CLI、 analyzer 插件 或 库
链接
- 查看 CHANGELOG.md 上的 主要/破坏性更新, 和 发布 的详细版本历史。
- 想要贡献的话,可先阅读 CONTRIBUTING.md 。
- 如果发现有什么缺失或者文档中不清晰的地方,请开一个 issue。
安装
$ dart pub add --dev dart_code_metrics
# 或用于 Flutter 包
$ flutter pub add --dev dart_code_metrics
或者
手动添加到 pubspec.yaml
dev_dependencies:
dart_code_metrics: ^4.19.1
然后运行
$ dart pub get
# 或用于 Flutter 包
$ flutter pub get
基本配置
添加配置到 analysis_options.yaml
dart_code_metrics:
anti-patterns:
- long-method
- long-parameter-list
metrics:
cyclomatic-complexity: 20
maximum-nesting-level: 5
number-of-parameters: 4
source-lines-of-code: 50
metrics-exclude:
- test/**
rules:
- newline-before-return
- no-boolean-literal-compare
- no-empty-block
- prefer-trailing-comma
- prefer-conditional-expressions
- no-equal-then-else
重新加载 IDE 使 analyzer 能发现插件配置。
可在网站上阅读更多配置的相关内容。
用法
Analyzer 插件
Dart Code Metrics 可作为用于 Dart analyzer 包 的插件提供额外的规则。
所有规则上的问题或者反模式会在 IDE 中高亮显示。
用 has auto-fix 徽章标记出来的规则可通过 IDE 的上下文菜单自动修复。VS Code 示例:
CLI
该包可作为 CLI 使用,并支持多重命令:
| 命令 | 使用示例 | 简短描述 |
|---|---|---|
| analyze | dart run dart_code_metrics:metrics analyze lib | 报告代码指标、规则和反模式违反。 |
| check-unnecessary-nullable | dart run dart_code_metrics:metrics check-unnecessary-nullable lib | 检查函数、方法、构造函数中非必要的可空参数。 |
| check-unused-files | dart run dart_code_metrics:metrics check-unused-files lib | 检查未使用的 *.dart 文件。 |
| check-unused-l10n | dart run dart_code_metrics:metrics check-unused-l10n lib | 检查 *.dart 文件中未使用的 localization 。 |
| check-unused-code | dart run dart_code_metrics:metrics check-unused-code lib | 检查 *.dart 文件中未使用的代码。 |
对于这些命令,需要更多帮助的话,可运行相应命令的帮助 dart run dart_code_metrics:metrics help <command>
注: 如果你为多个包的仓库配置了 Dart Code Metrics ,可查看网站的该部分.
Analyze
报告代码指标、规则和反模式违反。
要执行命令,运行
$ dart run dart_code_metrics:metrics analyze lib
# 或用于 Flutter 包
$ flutter pub run dart_code_metrics:metrics analyze lib
它会以下面的一种格式生成结果:
- 控制台
- GitHub
- Codeclimate
- HTML
- JSON
控制台报告示例:
检查非必要的可空参数
检查函数、方法、构造函数中的非必要的可空参数。
要执行该命令,运行
$ dart run dart_code_metrics:metrics check-unnecessary-nullable lib
# 或用于 Flutter 包
$ flutter pub run dart_code_metrics:metrics check-unnecessary-nullable lib
它会以下面的一种格式生成结果:
- 控制台
- JSON
控制台报告示例:
检查未使用的文件
检查未使用的 *.dart 文件。
要执行该命令,运行
$ dart run dart_code_metrics:metrics check-unused-files lib
# 或用于 Flutter 包
$ flutter pub run dart_code_metrics:metrics check-unused-files lib
它会以下面的一种格式生成结果:
- 控制台
- JSON
控制台报告示例:
检查未使用的 localization
检查未使用的 Dart 类成员,囊括应用的国际化值。
此类 Dart 类的示例:
class ClassWithLocalization {
String get title {
return Intl.message(
'Hello World',
name: 'title',
desc: 'Title for the Demo application',
locale: localeName,
);
}
}
要执行该命令,运行
$ dart run dart_code_metrics:metrics check-unused-l10n lib
# 或用于 Flutter 包
$ flutter pub run dart_code_metrics:metrics check-unused-l10n lib
它会以下面的一种格式生成结果:
- 控制台
- JSON
控制台报告示例:
检查未使用的代码
检查 *.dart 文件中未使用的代码。
要执行该命令,运行
$ dart run dart_code_metrics:metrics check-unused-code lib
# or for a Flutter package
$ flutter pub run dart_code_metrics:metrics check-unused-code lib
它会以下面的一种格式生成结果:
- 控制台
- JSON
控制台报告示例:
问题解决
如果插件未能如期运行,请阅读 指南。
贡献
如果对贡献有兴趣,可查看 贡献的指导方针。欢迎反馈和贡献!
文章
英语
- 使用 Dart Code Metrics 查找未使用的文件 - 该文章考虑首选的命令之一,检查未使用的 Dart 文件, 作者Dmitry Zhifarsky
- 使用 Dart Code Metrics 改善代码质量 - 使用 Dart Code Metrics 的优点,作者 Dmitry Zhifarsky
- 创建用于 Dart Analyzer 的自定义插件 - 如何开发自定义的 Dart 代码 analyzer 插件, 作者 Dmitry Zhifarsky
- Flutter 静态分析, Dart Code Metrics - 如何安装 dart_code-metrics 插件并有效地用其分析 Dart 代码。作者 Fred Grott
俄语 (不会翻译)
如何联系我们
可随时询问有关该工具的任何问题。 加入我们的社区Telegram 上的频道。 我们同时对应英语和俄语。