如何声明可以由许多不同命名的包之一实现的依赖项?
在 Raku 发行版中,我如何依赖Foo::Bar或Foo::Baz不依赖两者?
回答
您可以使用"any": [$dependency-spec1, $dependency-spec2]. 这可能类似于以下之一(取决于您使用的是纯字符串依赖项还是散列):
"depends" : {
"runtime" : {
"any" : [
"Foo::Bar",
"Foo::Baz"
]
}
}
"depends" : {
"runtime" : {
"any" : [
{
"name" : "Foo::Bar"
},
{
"name" : "Foo::Baz"
}
]
}
}
这也不限于 raku 依赖项。例如,声明对其中一个curl或wget一个的依赖可以执行以下操作:
"depends" : {
"runtime" : {
"any" : [
"curl:from<bin>",
"wget:from<bin>"
]
}
}
zef install $whatever如果没有找到,这将导致通知用户丢失的程序。