如何使用堆栈来安装本地创作的Haskell模块以实现全局使用?

我有一个本地创作Haskell的项目,这既产生:如何使用堆栈来安装本地创作的Haskell模块以实现全局使用?

  1. 二进制可执行文件,
  2. 几个新的哈斯克尔模块,我想发到我的其他访问,哈斯克尔基础,可执行文件。

后:

stack build 

stack install

我发现:

  1. 二进制可执行文件(#1,以上)运行在任何目录下就好了。
  2. 但是,新的Haskell模块(上面#2)只有在我从我的项目目录中运行时才能找到! (也就是说,对于除#1以外的任何可执行文件)。

我需要能够从任何地方找到新模块。 我该如何做到这一点?

回答:

每个堆栈项目位于其自己的沙箱中,因此编译的模块只能在该项目中使用。编译的依赖项(来自堆栈快照)有时会在项目之间共享。

请注意,您可以在软件包列表中列出相对路径,并指向该软件包。它会重新构建,但可以通过这种方式直接在另一个项目中使用。为什么多余的建筑? Stack与Cabal-install有不同的项目模型 - 它不允许包DB的变化影响其他项目的构建。

共享这样一个包的一个选择是让它在git仓库中使用https://docs.haskellstack.org/en/stable/custom_snapshot/,但这些东西还是有点新的。

以上是 如何使用堆栈来安装本地创作的Haskell模块以实现全局使用? 的全部内容, 来源链接: utcz.com/qa/266091.html

回到顶部