使用堆栈预先形成孤立下载和安装(用于测试和实验)Hackage中的Haskell软件包,而不是Stackage中的工作流程是什么?
例如
stack new tester
cd tester
# Then add the package PKG to 'extra-deps'
stack build . --force-dirty
是不够的,并且当尝试包的import
部分时,会导致错误("当前程序中的模块,或任何已知的包")。
使用
显式构建软件包(似乎不应该这样做)stack build PKG
也不起作用(导致警告它"是隐藏包PKG的成员......")。
如果我改为
stack new tester --force
cd tester
stack build PKG
我得到了相同的"隐藏的包"我尝试在stack ghci
会话中导入包的组件时出错。
使用Haskell堆栈为Hackage上的特定包创建独立临时安装的(最佳实践)工作流程是什么?
答案 0 :(得分:1)
要使用Stackage上不可用的软件包,我通常首先尝试在全局项目中构建它:
$ cd ~/
$ stack build the-package
$ stack ghci
如果这不起作用,通常是因为缺少依赖关系或边界问题,我采用以下工作流程:
$ stack new playground
$ cd playground
# In playground.cabal, add the-package to the library build-depends section
$ stack solver --update-config
$ stack ghci
# Play with the package