flutter - 为什么 flutter 分析与 Dart 分析不同?

标签 flutter dart static-code-analysis linter dart-analyzer

我正在学习 Flutter 并且我已经创建了一个简单的 Android 应用程序。我想遵循最佳实践,所以我还创建了一个 analysis_options.yaml :

include: package:pedantic/analysis_options.yaml

linter:
  rules:
    public_member_api_docs: true
Android Studio 根据 analysis_options.yaml 正确更新其代码分析设置并举报违规行为。
问题是当我运行 flutter analyze 时它不报告任何 public_member_api_docs :
flutter analyze
Running "flutter pub get" in flutter-course...         514ms
Analyzing flutter-course...                                 

   info • Unused import: 'package:places/ui/screen/sight_list_screen.dart' • lib/main.dart:2:8 • unused_import
   info • Omit type annotations for local variables • lib/ui/screen/visiting_screen.dart:166:5 • omit_local_variable_types
但是当我运行 dart analyze它报告了大量警告:
dart analyze
Analyzing flutter-course... 2.1s

   info • Document all public members at lib/constants.dart:5:16 • (public_member_api_docs)
   info • Document all public members at lib/constants.dart:6:16 • (public_member_api_docs)
   …
   info • Unused import: 'package:places/ui/screen/sight_list_screen.dart' • lib/main.dart:2:8 • unused_import
   info • Omit type annotations for local variables • lib/ui/screen/visiting_screen.dart:166:5 • omit_local_variable_types
为什么不flutter analyze尊重我的设置 analysis_options.yaml ?

最佳答案

我假设他们使用不同的预设(如果您尚未配置 analysis_options.yaml )。dart analyze可能默认为更适合已发布包的内容 ( public_member_api_docs ) 而 flutter analyze更适用于没有正在使用的 API 的应用程序。
您可以尝试添加 analysis_options.yaml带有一些预设配置的文件,如 lintpedantic .
这样你可能会看到更多的提示和警告,但你有一个很好的基线,我认为这两个命令应该给你相同的输出。
或者,您可以从一个空的 analysis_options.yaml 开始并一一启用/禁用您要使用的检查。
编辑

Why doesn't flutter analyze respect the settings from my analysis_options.yaml?


我错过了这个。传统上,由于使用不同的依赖项版本,因此这两个命令的输出和格式都存在差异。在 Dart 2.12 和 Flutter 2.0 中,它们都应该在幕后使用相同的东西。
话虽如此,目前似乎有 https://github.com/flutter/flutter/projects/106正在进行中以修复最后剩余的差异。

关于flutter - 为什么 flutter 分析与 Dart 分析不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65308789/

相关文章:

android - MissingPluginException(未找到 channel video_thumbnail 上的方法文件的实现)

android - Flutter 应用程序中的 Bottomnavigationbar 项目图标

oop - 我该如何从外部在flutter中从外部调用需要上下文的函数

java - 限制其他 Java 包对 Java 包的访问

python - 创建元组的无意尾随逗号

r - 编写 R lint 程序

flutter - 在 flutter 中跟踪 x 和 y 位置的可拖动元素

flutter - firebase messages 和 flutter sdk 驱动版本解决失败

flutter - 堆叠在listview flutter 无限高度

dart - Dart:如何从String中获取char并进行比较