0

我有一个用 scotty 编写的简单网络应用程序。我想使用 fay 生成前端 JS 代码,并在前端和后端之间使用共享类型。

目前,我使用cabal run: 在我的 .cabal 文件中运行我的应用程序,我定义了一个“可执行文件”和“构建依赖”取决于base. 当我在“build-depends”中包含“fay”和“fay-base”时,编译失败,因为Prelude它不明确。

我知道“fay-base”应该替换标准前奏,但我仍然想在后端代码中使用标准前奏。

那么,我应该如何编写我的 .cabal 文件以及我应该在我的 .hs 文件中使用哪些语言扩展名,以便 std Prelude 和 fay Prelude 可以共存?这是正确的方法吗?

我正在使用 fay-0.20.1.1。

4

1 回答 1

1
  • 您可以将fay其作为依赖项,它是一个普通的 Haskell 包,不会引起任何冲突。
  • fay-base不取代base。它是 Fay 的 base 版本,只能与 Fay 代码一起使用,反之亦然。
  • 如果您想确保fay-base作为依赖项被拉入,您可以依赖另一个 fay 包(例如作为传递依赖项包含fay-text的小包)fay-base

您可以选择何时构建您的 fay 代码:

  • 在使用Fay 的 APIfay-builder的程序启动时,您可以在 Cabal 文件中指定 fay 选项(请参阅此博客文章,但请跳过有关自定义 cabal 钩子的部分!)
  • 在每个 HTTP 请求上,对开发很有用。您可以为此使用 Fay API、fay-builder、yesod-fay、snplet-fay 或 happstack-fay。
  • 作为一个有习惯的阴谋集团钩子Setup.hs(再次,坏主意)
于 2014-08-18T20:47:15.997 回答