我可以让我的pubspec.yaml使用另一个类似于依赖项的基础吗用在我的包裹里所以pubspec.yaml可以引用另一个作为它的基础?
pieyvz9o1#
如果你想让这些包使用相同的依赖项,那么也许你可以创建一个新的包,它存储所有需要的包,然后创建一个库。你创建一个新的dart文件,并粘贴如下内容:
library my_library export 'package:ffmpeg_kit_flutter/ffmpeg_kit.dart';
字符串然后,对于需要所有这些包的每个项目,只需添加这个新包并导入库文件即可。如果你想在这个新的导出包中添加一个新的依赖项,你可以添加它,然后导出它。如果你发布了这个导出包到pub.dev,你可能需要在每个使用这个包的项目的pubspec.yaml中更新版本,只需更改版本号并运行pub get,但是,与手动添加依赖项相比,这将不那么麻烦。希望这能回答你的问题。
pub.dev
pub get
6vl6ewon2#
当你添加一个依赖项(我们称之为“Package A”)到你的项目中时,它就变成了一个直接依赖项,而“Package A”的任何依赖项都变成了 transitive 依赖项。至于这两种依赖关系是如何处理的,我不知道它们有什么不同,但它们有特定的命名方式。🤷有一个lint也不鼓励这种类型的行为,depend_on_referenced_packages。显式地依赖于您引用的包 * 确保它们始终存在 *.这意味着依赖可能在未来的某个时候不存在。可能是一些操作系统维护者删除了他们在项目中不再使用的软件包。现在,如果你是上述软件包的维护者,我相信你会知道是否有一个依赖已经被删除,所以这可能不是一个问题。最终,这取决于你,只要知道显式地依赖于你在项目中使用的包是更好的做法。如果你想实现一个“基本pubspec.yaml”,这里是你可以做的:
depend_on_referenced_packages
. ├── base_pkg │ ├── lib │ │ └── base_pkg.dart │ └── pubspec.yaml └── working_project ├── ... └── pubspec.yaml
# (base_pkg) pubspec.yaml name: base_pkg dependencies: json_annotation: ...
// lib/base_pkg.dart export 'package:json_annotation/json_annotation.dart';
# (project) pubspec.yaml dependencies: base_pkg: path: ../base_pkg # absolute/relative path to base_pkg
import 'package:base_pkg/base_pkg.dart'; @JsonSerializable() class SomeClass { ... }
中使用base_pkg的依赖项**注意:**此方法仅适用于dependencies,不适用于dev_dependencies。所有dev_dependencies仅在导入它们的项目中使用,因此您需要将它们重新添加到工作项目中。
dependencies
dev_dependencies
开发依赖与常规依赖的不同之处在于,* 您所依赖的软件包的开发依赖会被忽略 *。
2条答案
按热度按时间pieyvz9o1#
如果你想让这些包使用相同的依赖项,那么也许你可以创建一个新的包,它存储所有需要的包,然后创建一个库。你创建一个新的dart文件,并粘贴如下内容:
字符串
然后,对于需要所有这些包的每个项目,只需添加这个新包并导入库文件即可。
如果你想在这个新的导出包中添加一个新的依赖项,你可以添加它,然后导出它。如果你发布了这个导出包到
pub.dev
,你可能需要在每个使用这个包的项目的pubspec.yaml中更新版本,只需更改版本号并运行pub get
,但是,与手动添加依赖项相比,这将不那么麻烦。希望这能回答你的问题。
6vl6ewon2#
当你添加一个依赖项(我们称之为“Package A”)到你的项目中时,它就变成了一个直接依赖项,而“Package A”的任何依赖项都变成了 transitive 依赖项。
至于这两种依赖关系是如何处理的,我不知道它们有什么不同,但它们有特定的命名方式。🤷
有一个lint也不鼓励这种类型的行为,
depend_on_referenced_packages
。显式地依赖于您引用的包 * 确保它们始终存在 *.
这意味着依赖可能在未来的某个时候不存在。可能是一些操作系统维护者删除了他们在项目中不再使用的软件包。
现在,如果你是上述软件包的维护者,我相信你会知道是否有一个依赖已经被删除,所以这可能不是一个问题。
最终,这取决于你,只要知道显式地依赖于你在项目中使用的包是更好的做法。
如果你想实现一个“基本pubspec.yaml”,这里是你可以做的:
中使用base_pkg的依赖项
**注意:**此方法仅适用于
dependencies
,不适用于dev_dependencies
。所有dev_dependencies
仅在导入它们的项目中使用,因此您需要将它们重新添加到工作项目中。开发依赖与常规依赖的不同之处在于,* 您所依赖的软件包的开发依赖会被忽略 *。