Haskell Cabal компилирует .js во время сборки

Допустим, я создаю веб-приложение с хаскелем как на стороне сервера, так и на стороне клиента. На этапе сборки я хочу скомпилировать код на стороне сервера с помощью ghc и код на стороне клиента с некоторым транспилером haskell в js.

Инструменты транспилятора haskell предоставляют исполняемый файл, который мне нужно передать с .hs файлами, и он будет скомпилирован в .js файлов. Как мне указать в клике запускать внешние программы на этапе сборки? Я вижу, что поле UserHooks buildHook имеет тип возвращаемого значения IO(), поэтому теоретически я, вероятно, могу использовать, например, библиотеку shelly для выполнения кода оболочки для запуска транспайлера, но я не знаю, является ли это самым чистым решением.


person coubeatczech    schedule 08.06.2014    source источник


Ответы (1)


Вот сообщение, которое я написал о решении той же проблемы.

Обычно использование пользовательских файлов установки является плохой идеей, так как для них нет возможности обрабатывать зависимости, и если вы не установите эти зависимости сначала, вы не сможете даже sdist.

Я считаю, что хорошо иметь дополнительный параметр командной строки, который предварительно компилирует код при запуске веб-сервера.

Другой вариант - иметь make-файл, который компилирует оба.

person Adam Bergmark    schedule 09.06.2014