2 votes

Est-il possible de sortir un fichier statique dans le bin lors de la construction avec Cabal ou Stack ?

Je veux produire des fichiers html statiques en même temps que le résultat de ma construction (en donnant accès à ces fichiers à mon programme Haskell).

Voici la structure actuelle de mon projet :

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

Je veux ça quand je cours stack build dans le répertoire Backend, il construit mon projet Haskell, puis copie le répertoire Frontend et le place dans le résultat de la construction, à côté de mon exécutable.

Je ne suis pas très familier avec Cabal ou Stack, mais j'ai surtout regardé dans la documentation de Cabal et j'ai vu qu'il y avait la fonction data-dir paramètre, on dirait que ça fait ce que je veux, mais même en ajoutant : data-dir: ..\Frontend dans mon fichier cabal, j'obtiens cet avertissement : data-dir: ..\Frontend' is a relative path outside of the source tree. This will not work when generating a tarball with 'sdist'. et les fichiers ne sont pas présents dans la sortie.

Je n'ai pas vu de drapeau similaire dans Stack.

Est-il possible de faire ce que je veux ? Ou bien je vais devoir créer mon propre script pour faire cela pour moi (appeler stack build, et ensuite sortir les fichiers manuellement) ?

1voto

Michael Snoyman Points 14888

Vous pouvez utiliser le file-embed pour utiliser Template Haskell afin d'intégrer le contenu de fichiers ou de répertoires directement dans votre exécutable. wai-app-static s'en sert, par exemple, pour créer un serveur de fichiers statique autonome si on le lui demande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X