我在导入负责维护依赖项的包的项目中遇到了 lint 警告消息:
“导入的包‘get’不是导入包的依赖项。”
原因是我没有直接在我的项目中添加包pubspec.yaml因为我创建了一个接收所有依赖项的包,这样我就可以集中对依赖它的所有项目进行更改.
我现在导入依赖包的方式是使用路径,如示例所示。
依赖包pubspec.yaml示例:
name: dependencies
description: dependencies of projects
version: 0.0.1
publish_to: 'none'
environment:
sdk: '>=3.0.5 <4.0.0'
dependencies:
flutter:
sdk: flutter
get: ^4.6.5
logger: ^1.1.0
device_info: ^2.0.0
get_it: ^7.1.3
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^2.0.0
flutter:
主要项目pubspec.yaml示例:
name: main_project
description: main_project that depends on the package
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: '>=3.0.5 <4.0.0'
dependencies:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
dependency_overrides:
dependencies:
path: packages/common/dependencies
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^2.0.0
flutter:
我想知道是否有任何方法可以修复此 lint 警告消息,或者我应该停用此消息。
我已经看到了这个答案,但我不知道使用
get: any
是否会尝试在pub.dev上搜索最新版本,或者它会识别出我正在从我的依赖包管理器导入它。
在你的依赖管理器包中,你应该在 lib 中有一个与你的包同名的文件
lib/dependencies.dart
,在那里你应该导出你想要公开的所有传递依赖项并添加忽略消息 lint:
// ignore: invalid_export_of_internal_element
export 'package:get/get.dart';
.... //Same with all the packages you want to expose from this library
就我而言,我错误地在 dev_dependency 下定义了依赖关系。修复方法是将依赖项移至“dependencies”下。下面是图解。
dependencies:
flutter:
sdk: flutter
// Below is the added package with path which was previously under dev_dependencies
networking:
path: ./packages/networking
dev_dependencies:
flutter_test:
sdk: flutter
build_runner: ^2.4.9