perl - 使用 Dist::Zilla dist.ini 如何设置备用依赖项?

标签 perl cpan dist-zilla

我正在构建一个可以与 Mojo::SQLiteMojo::Pg 无关地工作的模块。我如何处理依赖关系?我查过Mojo::DB::Results::Role::Struct其工作方式相同,并且它不会列出运行时级别的依赖项。

我该怎么办?

最佳答案

我会在您的 cpanfile 中将这两个列为推荐要求。这样它们就作为依赖项存在,但除非用户要求,否则它们不会被安装。然后,我会在代码中添加运行时检查,如果它们都不可用,则会发出嘎嘎声。

要将其映射到 Dist::Zilla,可能有几种不同的方法。您可以编写自己的 cpanfile 并让 dzil 从那里获取它,或者您可以在 dist.ini 中指定依赖项,或者依靠 dzil 从您的源中查找它们...或者这些的组合。

对于WWW::Mechanize ,我们使用组合。在我们的dist.ini我们使用 Prereqs 指定最低版本插件。

[Prereqs / RuntimeRequires]
perl = 5.008
HTML::Form = 6.08
Scalar::Util = 1.14

[Prereqs / TestRequires]
HTTP::Daemon = 6.12
Test::Memory::Cycle = 1.06
Test::NoWarnings = 1.04
Test::Taint = 1.08

[Prereqs / DevelopRequires]
LWP::Protocol::https = 6.07
Perl::Critic = 0
Perl::Tidy = 0

这不是完整的要求列表,因为 AutoPrereqs为我们找到那些。我们只需要设置显式版本即可。

然后我们还使用 Prereqs::Soften 1 将需求转换为较低的...需求。

[Prereqs::Soften]
module = Compress::Zlib
to_relationship = recommends

这可能也是您想要对两个数据库模块执行的操作。


1) 此区 is in need of being taken over ,因为作者 Kent Fredric 去年因事故不幸去世。

关于perl - 使用 Dist::Zilla dist.ini 如何设置备用依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73602002/

相关文章:

Perl Archive::Zip 创建不必要的文件夹

git - Perl -- commit-msg 钩子(Hook)在退出时不会停止提交 1

perl - 使用 Dist::Zilla 构建 perl 模块时提示用户选项

perl - 我如何检查二进制依赖项在 Perl 中是否可用?

perl - 如何测试输出/修改文件的模块/脚本?

perl - 测试使用 Dist::Zilla 的 XS 模块

git - 由于未跟踪的 git 更改,dist zilla 无法发布

linux - 使用 Mail::CheckUser 检查电子邮件 ID 是否有效时出错

perl - 如何从中断的 CPAN 模块安装中恢复?

perl - 为什么我的 Perl CGI 程序返回服务器错误?