Пример файла.cabal для проекта fay

У меня есть простое веб-приложение, написанное на Скотти. Я хотел бы использовать fay для генерации JS-кода внешнего интерфейса и использования общих типов между внешним интерфейсом и внутренним интерфейсом.

На данный момент я запускаю свое приложение, используя cabal run: в моем файле.cabal я определил "исполняемый файл" и "зависит от сборки" зависит от base, Когда я включаю "fay" и "fay-base" в "build-зависящие", компиляция завершается неудачно, потому что Prelude это неоднозначно.

Я понимаю, что "fay-base" должен заменить стандартную прелюдию, но я все еще хочу использовать стандартную прелюдию в бэкэнд-коде.

Итак, как мне написать свой файл.cabal и какие языковые расширения я должен использовать в моих файлах.hs, чтобы std Prelude и fay Prelude могли сосуществовать? Это правильный подход?

Я использую fay-0.20.1.1.

1 ответ

  • Вы можете иметь fay в качестве зависимости, это обычный пакет на Haskell и не вызывает никаких конфликтов.
  • fay-base не заменяет base, Это базовая версия Fay, которую можно использовать только с кодом Fay, и наоборот.
  • Если вы хотите убедиться, fay-base в качестве зависимости вы можете зависеть от другого пакета Fay (например, небольшой fay-text получить fay-base включается как переходная зависимость)

У вас есть несколько вариантов того, когда создавать код Fay:

  • При запуске программы, используя Fay API или fay-builder, который позволяет вам указать опции fay в вашем файле Cabal (см. Этот пост в блоге, но пропустите часть о пользовательских хабах!)
  • На каждый HTTP-запрос, полезный для разработки. Для этого вы можете использовать Fay API, fay-builder, yesod-fay, snaplet-fay или happstack-fay.
  • Как крюк Кабала с кастомом Setup.hs (Опять плохая идея)
Другие вопросы по тегам