dart fix
dart fix
命令查找并修复两种类型的问题
由
dart analyze
识别的分析问题,这些问题具有相关的自动修复(有时称为快速修复或代码操作)。更新到较新版本的 Dart 和 Flutter SDK 时,过时的 API 用法。
应用修复
#要预览建议的更改,请使用 --dry-run
标志
$ dart fix --dry-run
要应用建议的更改,请使用 --apply
标志
$ dart fix --apply
自定义行为
#dart fix
命令仅在诊断程序识别出“问题”时才应用修复。某些诊断程序(例如编译错误)是隐式启用的,而其他诊断程序(例如 lints)必须在分析选项文件中显式启用,因为这些诊断程序的个人偏好各不相同。
有时,您可以通过启用额外的 lints 来增加可以应用的修复数量。请注意,并非所有诊断程序都有相关的修复。
示例
#假设您有如下代码
class Vector2d {
final double x, y;
Vector2d(this.x, this.y);
}
class Vector3d extends Vector2d {
final double z;
Vector3d(final double x, final double y, this.z) : super(x, y);
}
Dart 2.17 引入了一个名为超级初始化器的新语言特性,它允许您以更紧凑的风格编写 Vector3d
的构造函数
class Vector3d extends Vector2d {
final double z;
Vector3d(super.x, super.y, this.z);
}
要启用 dart fix
来升级现有代码以使用此功能,并确保分析器在您稍后忘记使用它时发出警告,请按如下方式配置您的 analysis_options.yaml
文件
linter:
rules:
- use_super_parameters
我们还需要确保代码启用了所需的语言版本。超级初始化器是在 Dart 2.17 中引入的,因此请更新 pubspec.yaml
以使较低 SDK 约束至少包含该版本
environment:
sdk: ">=2.17.0 <4.0.0"
然后您应该在查看建议的更改时看到以下内容
$ dart fix --dry-run
Computing fixes in myapp (dry run)... 9.0s
1 proposed fixes in 1 files.
lib/myapp.dart
use_super_parameters • 1 fix
要了解有关自定义分析结果和行为的更多信息,请参阅自定义静态分析。
VS Code 支持
#当您在 VS Code 中打开项目时,Dart 插件会扫描项目以查找 dart fix
可以修复的问题。如果它找到可以修复的问题,VS Code 会显示提示来提醒您。

在运行 dart pub get
或 dart pub upgrade
后,如果包更改添加了 dart fix
可以修复的问题,VS Code 也可能会显示此提示。
在运行 dart fix
之前保存所有文件。这确保 Dart 使用最新版本的文件。
除非另有说明,否则本网站上的文档反映了 Dart 3.7.1 版本。页面上次更新于 2024-12-10。 查看源代码 或 报告问题。