dart fix
dart fix
命令可以查找并修复两种类型的错误:
由
dart analyze
标识的分析错误,这些错误有相关的自动修复(有时称为 快速修复 或 代码操作 )。更新到 Dart 和 Flutter SDK 的较新版本时,过时的 API 使用方式。
应用修复
#要预览建议的更改,请使用 --dry-run
标志:
$ dart fix --dry-run
要应用建议的更改,请使用 --apply
标志:
$ dart fix --apply
自定义行为
#只有当诊断程序识别出“问题”时, dart fix
命令才会应用修复。某些诊断程序(如编译错误)是隐式启用的,而其他诊断程序(如 lint)必须在 分析选项文件 中显式启用,因为这些程序的各个偏好设置各不相同。
有时,您可以通过启用其他 lint 来增加可以应用的修复数量。请注意,并非所有诊断都有相关的修复程序。
示例
#假设您有这样的代码:
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 引入了一种名为 super 初始化器的新的语言特性,它允许您以更紧凑的风格编写 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
我们还需要确保代码启用了所需的 语言版本 。Super 初始化器是在 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.6.0。页面最后更新于 2025-02-05。 查看源代码 或 报告问题.