说,我需要System.Eval.Haskell。或其他。我怎么知道应该在package.yaml中指定哪个包?当我转到https://hackage.haskell.org/package/plugins-1.5.7/docs/System-Eval-Haskell.html时,看不到任何软件包名称。

附言“插件”对我不起作用。因此,我认为这是不同的。希望如此 :)

看起来在配置中的额外依赖项和“常规”依赖项之间有相当不清楚的差异。提及plugins-1.5.7为Extra-dep确实可行。我是在这里做一些依赖关系管理不善,还是那绿色的路要走?

最佳答案

看起来在配置中的额外依赖项和“常规”依赖项之间有相当不清楚的差异。提及plugins-1.5.7为Extra-dep确实可行。我是在这里做一些依赖关系管理不善,还是那绿色的路要走?

那就是应该的样子。问题在于Haskell软件包有两个主要的档案库:Hackage(基本上包括所有软件包和以前的每个版本)和Stackage(大量的Hackage子集, bundle 在相互兼容的软件包和版本的快照中)。 Stack默认情况下是从Stackage中绘制软件包,因此,如果您要使用Hackage中不在Stackage中的软件包,则还必须将其添加到extra-depsstack.yaml中。可以在contents page of the package in the Hackage docs中找到包是否在Stackage中(如果在Stackage中,则在“分发”字段中将有一个条目)。 Stackage Hoogle也与此相关,它使您可以在Stackage快照中搜索软件包名称,模块和标识符。

附注:要进一步了解Hackage,Stackage和Stack之间的关系,您可以看一下我对What is the difference between Cabal and Stack?的回答(如果您正在使用的话,可以用“.cabal”替换其中提到的“package.yaml文件”。)

08-26 05:22