如何修复“导入的包”不是导入包的依赖项。关于使用集中依赖包的项目的消息

问题描述 投票:0回答:2

我在导入负责维护依赖项的包的项目中遇到了 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上搜索最新版本,或者它会识别出我正在从我的依赖包管理器导入它。

flutter flutter-dependencies
2个回答
0
投票

在你的依赖管理器包中,你应该在 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

0
投票

就我而言,我错误地在 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

	
© www.soinside.com 2019 - 2024. All rights reserved.