如果我stack unpack hakyll-4.9.2.0
我在cabal文件中看到
Build-Depends:
base >= 4.8 && < 5,
...
If flag(checkExternal)
Build-depends:
http-conduit >= 2.2 && < 2.3,
执行stack init
后,所选的解析程序为lts-7.14
,其中只包含http-conduit
版本2.1.11
(cf https://www.stackage.org/lts-7.14/package/http-conduit-2.1.11)
然而,它确实编译,并且stack list-dependencies --flag hakyll:checkExternal | grep -i http
产生
...
http-conduit 2.1.11
令人惊讶。
当我将解析器更改为stack.yaml中的nightly-2016-12-28
时,它显示依赖
$ stack list-dependencies --flag hakyll:checkExternal | grep -i http
http-conduit 2.2.3
有什么解释可以在这里发生什么?
答案 0 :(得分:1)
在Stack中,解析程序值完全指定了哪些包可用。更改标志不会以任何方式影响可以使用的软件包版本。