如何仅针对特定导入而不是整个文件抑制 depend_on_referenced_packages?
How to suppress depend_on_referenced_packages just for a specific import, not the whole file?
升级到 Flutter 3.0 后,我在 运行 flutter analyze
时开始遇到很多 depend_on_referenced_packages
lint 问题。如果我删除报告的导入,编译就会中断。大多数问题都与 package:collection/collection.dart
有关,它提供了扩展方法。
目前我能找到的最好的方法是通过添加 // ignore_for_file: depend_on_referenced_packages
来抑制受影响文件的此 lint。但是我喜欢这种 lint(通常我希望尽可能多地启用 lint),那么有没有办法只针对特定导入而不是文件中的所有导入抑制 lint?
pubspec.yaml
的相关章节:
...
environment:
sdk: ">=2.17.1 <3.0.0"
flutter: ">=3.0.1"
...
dev_dependencies:
flutter_lints: ^2.0.1
运行:
$ flutter analyze
...
info • Depend on referenced packages • lib/preferences/palette_spec.dart:3:8 • depend_on_referenced_packages
info • Depend on referenced packages • lib/ui/parts/circular_menu.dart:5:8 • depend_on_referenced_packages
...
源代码示例:
database_utils.dart
(firstWhereOrNull 来自collection.dart):
...
import 'package:collection/collection.dart';
...
Activity? _getActivityById(int id) {
return activities.firstWhereOrNull((element) => element.id == id);
}
...
Record? _getRecordById(int id) {
return records.firstWhereOrNull((element) => element.id == id);
}
palette_spec.dart
(forEachIndexed 来自collection.dart):
...
import 'package:collection/collection.dart';
...
paletteStr.split(",").forEachIndexed((index, colorStr) {
...
});
circular_menu.dart
:
...
import 'package:vector_math/vector_math.dart' as vector;
...
final angle = vector.radians(90.0 / (widget.children.length - 1) * index + angleFix);
注意:根本原因是collection是作为传递依赖引入的。
如果您依赖传递依赖项,则会报告此 lint。您是否在 pubspec.yaml 中定义了 collection?
dependencies:
collection: ^1.16.0
我有同样的问题,但在定义依赖关系后,lint 问题消失了。
升级到 Flutter 3.0 后,我在 运行 flutter analyze
时开始遇到很多 depend_on_referenced_packages
lint 问题。如果我删除报告的导入,编译就会中断。大多数问题都与 package:collection/collection.dart
有关,它提供了扩展方法。
目前我能找到的最好的方法是通过添加 // ignore_for_file: depend_on_referenced_packages
来抑制受影响文件的此 lint。但是我喜欢这种 lint(通常我希望尽可能多地启用 lint),那么有没有办法只针对特定导入而不是文件中的所有导入抑制 lint?
pubspec.yaml
的相关章节:
...
environment:
sdk: ">=2.17.1 <3.0.0"
flutter: ">=3.0.1"
...
dev_dependencies:
flutter_lints: ^2.0.1
运行:
$ flutter analyze
...
info • Depend on referenced packages • lib/preferences/palette_spec.dart:3:8 • depend_on_referenced_packages
info • Depend on referenced packages • lib/ui/parts/circular_menu.dart:5:8 • depend_on_referenced_packages
...
源代码示例:
database_utils.dart
(firstWhereOrNull 来自collection.dart):
...
import 'package:collection/collection.dart';
...
Activity? _getActivityById(int id) {
return activities.firstWhereOrNull((element) => element.id == id);
}
...
Record? _getRecordById(int id) {
return records.firstWhereOrNull((element) => element.id == id);
}
palette_spec.dart
(forEachIndexed 来自collection.dart):
...
import 'package:collection/collection.dart';
...
paletteStr.split(",").forEachIndexed((index, colorStr) {
...
});
circular_menu.dart
:
...
import 'package:vector_math/vector_math.dart' as vector;
...
final angle = vector.radians(90.0 / (widget.children.length - 1) * index + angleFix);
注意:根本原因是collection是作为传递依赖引入的。
如果您依赖传递依赖项,则会报告此 lint。您是否在 pubspec.yaml 中定义了 collection?
dependencies:
collection: ^1.16.0
我有同样的问题,但在定义依赖关系后,lint 问题消失了。