使用 Dist::Zilla 从 Perl 模块版本中排除目录

And*_* T. 4 perl dist-zilla

我的 Perl 模块根目录中有一个我不想发布的子目录。

我尝试使用https://metacpan.org/pod/Dist::Zilla::Plugin::GatherDir 的“prune_directory”或“exclude_file”属性

我试图指定 [GatherDir] 部分,但这与@Basic 的重复冲突,所以dist.ini现在我有(完整文件:https : //github.com/telatin/FASTQ-Parser/blob/master/dist.ini ):

[@Basic]
prune_directory = experimental
Run Code Online (Sandbox Code Playgroud)

dzil build --verbose我一起构建时,所有行都如下:

[@Basic/GatherDir] adding file experimental/scripts/my.pl
Run Code Online (Sandbox Code Playgroud)

所以确实添加了我要修剪的目录。

我该怎么办?

Gri*_*nnz 5

@Basic插件捆绑不能通过选项,它使用的插件。因此,您必须首先GatherDir使用@Filter包从中删除插件,然后使用GatherDir额外的选项。

[GatherDir]
prune_directory = experimental

[@Filter]
-bundle = @Basic
-remove = GatherDir
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用@ConfigSlicer@Basic直接修改插件使用。

[@ConfigSlicer]
-bundle = @Basic
GatherDir.prune_directory[] = experimental
Run Code Online (Sandbox Code Playgroud)

[]在这种情况下是因为通过 Config::Slicer 设置多值选项需要指示它是多值的。有关详细信息,请参阅文档。)

考虑@Starter包,它是一个现代化版本,默认情况下@Basic允许-remove和配置切片选项,以及基于现代 Dist::Zilla 实践的许多其他改进和选项。