mad*_*ead 7 static-code-analysis dart dart-analyzer flutter linter
我正在学习 Flutter 并且我已经创建了一个简单的 Android 应用程序。我想遵循最佳实践,所以我还创建了一个analysis_options.yaml:
include: package:pedantic/analysis_options.yaml
linter:
rules:
public_member_api_docs: true
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
但是当我运行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
Run Code Online (Sandbox Code Playgroud)
为什么不flutter analyze尊重我的设置analysis_options.yaml?
我假设他们使用不同的预设(如果您尚未配置analysis_options.yaml)。
默认值dart analyze可能更适合已发布的包 ( public_member_api_docs),而flutter analyze更适合没有正在使用的 API 的应用程序。
您可以尝试添加analysis_options.yaml具有某些预设配置(例如lint或pedantic )的文件。
这样您可能会看到更多提示和警告,但您有一个良好的基线,我认为这两个命令应该给您相同的输出。
或者,您可以从空白开始analysis_options.yaml,然后逐一启用/禁用您想要使用的检查。
编辑
为什么 flutteranalysis 不尊重我的analysis_options.yaml中的设置?
我错过了这个。传统上,两个命令的输出和格式都存在差异,因为它们使用不同的依赖版本。对于 Dart 2.12 和 Flutter 2.0,它们都应该在底层使用相同的东西。
话虽这么说,目前似乎正在 https://github.com/flutter/flutter/projects/106修复最后剩下的差异。
| 归档时间: |
|
| 查看次数: |
740 次 |
| 最近记录: |