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 引入了一個稱為 super initializers 的新語言特性,它允許你使用更緊湊的風格編寫 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 initializers 在 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 使用你檔案的最新版本。