Можно ли вывести статический файл в корзину при сборке с Cabal или Stack? - PullRequest
1 голос
/ 12 апреля 2019

Я хочу выводить статические html-файлы вместе с выводом моей сборки (предоставляя доступ к этим файлам моей программе на Haskell).

Вот моя текущая структура проекта:

MyProject/FrontEnd -- contains static html, js and css files.
MyProject/Backend -- contains the stack Haskell project

Я хочучто когда я запускаю stack build внутри Backend-каталога, он одновременно создает мой проект на Haskell, а затем копирует каталог Frontend и помещает его в вывод сборки вместе с моим исполняемым файлом.

Я не очень знаком с Cabalили Stack, но я заглянул в основном в документацию cabal и увидел, что есть параметр data-dir, который выглядит так, как будто он делает то, что я хочу, но даже при добавлении: data-dir: ..\Frontend в мой файл cabal я получаю это предупреждение: data-dir: ..\Frontend' is a relative path outside of the source tree. This will not work when generating a tarball with 'sdist'. и файлы отсутствуют в выводе.

Я не видел подобного флага в стеке.

Можно ли делать то, что я хочу?Или мне придется создать свой собственный сценарий, чтобы сделать это для меня (вызвать сборку стека, а затем вывести файлы вручную)?

1 Ответ

1 голос
/ 13 апреля 2019

Вы можете использовать пакет file-embed, чтобы использовать Template Haskell для встраивания содержимого файлов или каталогов непосредственно в ваш исполняемый файл.wai-app-static использует это, например, для создания автономного статического файлового сервера по запросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...