yesod-simple
템플릿을 사용하여 Yesod를 사용하여 간단한 웹 응용 프로그램 (pkb
)을 구축하고 있습니다. lts-6.25에 최신 버전이없는 라이브러리가 필요합니다 (yesod-simple
의 현재 기본값). 따라서 resolver를 stack.yaml
에서 lts-7.9로 변경했습니다. 또한 this issue with GHC 8.0.1를 읽고 성공적으로lts-7.9로 스캐 폴딩 된 Yesod 응용 프로그램 :`stack build`가 작동합니다.`stack test`가 작동하지 않습니다. stack exec-yesod devel`이 없습니다.
{-# LANGUAGE NoDisambiguateRecordFields #-}
{-# LANGUAGE NoRecordWildCards #-}
를 추가 필요한 경우와 기록에 명시 적으로 표기 모든 X{..}
을 변경하여 주위했다. 이제 내 패키지는 stack build
을 사용하여 성공적으로 빌드되며 단위 테스트는 stack test
을 사용하여 아무런 문제없이 실행됩니다. stack exec pkb
을 사용하여 응용 프로그램을 시작하면 웹 사이트를 방문 할 수 있으며 모든 기능이 정상적으로 작동합니다. GHCi에 응용 프로그램을 로딩해도 괜찮습니다 (stack exec cabal repl
을 사용하고 프롬프트에 appMain
+ [Enter] 입력).
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
의 출력을 보면, 내가 볼 수 있습니다 : (- 7.9 LTS로 전환하기 전에 작업하는 데 사용) 나는 다음과 같은 오류가
는 지금은 stack exec -- yesod 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 : 오류 : 'Application'에 대한 인터페이스를로드하지 못했습니다. 숨겨진 패키지 'pkb-0.0.0'의 멤버입니다. ' –
저는 아니에요. 물론,이 패키지가 무엇인지. 나는 hackage에서 그것을 볼 수 없다 : http://hackage.haskell.org/package/pkb – Sibi