我正在使用yesod-simple
模板構建一個簡單的web應用程序(稱爲pkb
)。我需要一堆沒有LTS-6.25最新版本的庫(當前默認爲yesod-simple
),所以我將解析器更改爲stack.yaml
中的lts-7.9。我也看了this issue with GHC 8.0.1和它周圍的成功合作,加入使用lts-7.9腳手架搭建yesod應用程序:`stack build` works,`stack test` works'stack exec - yesod devel` not
{-# LANGUAGE NoDisambiguateRecordFields #-}
{-# LANGUAGE NoRecordWildCards #-}
在必要時並在更改任何X{..}
以明確的符號與記錄。現在我的軟件包使用stack build
成功構建,單元測試使用stack test
運行沒有任何問題。當我使用stack exec pkb
啓動我的應用程序時,我可以訪問該網站並且一切正常。在GHCi中加載應用程序也可以正常工作(使用stack exec cabal repl
,然後在提示符處輸入appMain
+ [Enter])。
現在,當我嘗試運行使用stack exec -- yesod devel
開發服務器(用於切換到工作之前LTS-7.9)我收到以下錯誤:
app/devel.hs:2:1: error:
Failed to load interface for ‘Application’
It is a member of the hidden package ‘[email protected]’.
It is a member of the hidden package ‘[email protected]’.
綜觀stack exec -- yesod -v devel
輸出,我可以看到pkb
包位於搜索的目錄列表中。此外,所有加載pkb
包所需要的文件都存在:
$ ls -l .stack-work/install/x86_64-linux/lts-7.9/8.0.1/pkgdb
total 12
-rw-r--r-- 1 sam sam 5738 Nov 19 20:26 package.cache
-rw-r--r-- 1 sam sam 2536 Nov 19 20:26 pkb-0.0.0-AeggierDgKl46ITEmuA1C2.conf
$ ls -l .stack-work/install/x86_64-linux/lts-7.9/8.0.1/lib/x86_64-linux-ghc-8.0.1
total 4
drwxr-xr-x 6 sam sam 4096 Nov 19 20:26 pkb-0.0.0-AeggierDgKl46ITEmuA1C2
$ ls -l .stack-work/install/x86_64-linux/lts-7.9/8.0.1/bin
total 27440
-rwxr-xr-x 1 sam sam 28094672 Nov 19 20:26 pkb
那麼,爲什麼pkb
包仍然「隱藏」根據此錯誤消息?
我有上述命令here的輸出。
如果您需要更多信息,請讓我知道,我會很樂意提供。
看到日誌,你似乎有多個版本的'pkb'。只是一個猜測:刪除'.stack-work'並再次嘗試看看它是否工作。 – Sibi
不幸的是,這不起作用。現在我得到: 'app/devel.hs:2:1:error: 無法加載'Application'接口 它是隱藏包'pkb-0.0.0'的成員。' –
我不是當然,這個包是什麼。我無法在hackage中看到它:http://hackage.haskell.org/package/pkb – Sibi