2016-12-26 12 views
2

stack new project yesod-postgresを使用してYesodアプリケーションを作成しました。 Webアプリケーションの横に、同じデータベースモデルとデータベース接続を使用する別のプログラムを作成したいと思います。Yesodアプリケーションに応じてプログラムを作成する方法

第2のexecutableセクション(最初のコピー)を別の名前のキャバルファイルに追加し、main-is: myprogram.hsを追加しました。今すぐstack build && stack exec myprogramを実行できます。私は、ビルドプロセスをスピードアップするにはどうすればよい

$ stack build 
project-0.0.0: unregistering 
yesod-persistent-1.4.0.6: configure 
yesod-persistent-1.4.0.6: build 
yesod-persistent-1.4.0.6: copy/register 
yesod-form-1.4.9: configure 
yesod-form-1.4.9: build 
yesod-form-1.4.9: copy/register 
yesod-auth-1.4.15: configure 
yesod-auth-1.4.15: build 
yesod-auth-1.4.15: copy/register 
yesod-1.4.3.1: configure 
yesod-1.4.3.1: build 
yesod-1.4.3.1: copy/register 
classy-prelude-yesod-0.12.8: configure 
classy-prelude-yesod-0.12.8: build 
classy-prelude-yesod-0.12.8: copy/register 
project-0.0.0: build 
Preprocessing library project-0.0.0... 
In-place registering project-0.0.0... 
Preprocessing executable 'myprogram' for project-0.0.0... 
Linking .stack-work/dist/x86_64-linux/Cabal-1.22.5.0/build/myprogram/myprogram ... 
Preprocessing executable 'project' for project-0.0.0... 
Linking .stack-work/dist/x86_64-linux/Cabal-1.22.5.0/build/project/project ... 
project-0.0.0: copy/register 
Installing library in 
/home/jakob/projects/project/project/.stack-work/install/x86_64-linux/lts-6.27/7.10.3/lib/x86_6 
4-linux-ghc-7.10.3/project-0.0.0-1qruVQVcU0k2yXxF1Z1w7r 
Installing executable(s) in 
/home/jakob/projects/project/project/.stack-work/install/x86_64-linux/lts-6.27/7.10.3/bin 
Registering project-0.0.0... 
Completed 6 action(s). 

問題は、ビルドは常に1分以上かかることでしょうか?どのようにスタックが毎回yesod依存関係を再構築するのを防ぐことができますか?

答えて

3

これは、2番目の実行可能ファイルを追加することに固有のものではありません。単一の実行可能ファイルを持つ新しいyesod-postgresプロジェクトでさえも起こります。

代わりにStackのlts-6.27パッケージセットにバグがあるようです。これは回避策です。あなたのstack.yamlでは、以下の余分な-DEPを追加します。

extra-deps: 
- yesod-persistent-1.4.0.6 

stack buildを実行します。その後、2番目のstack buildは何も再構築せずに実行する必要があります。

+0

[Stack issue 2876](https://github.com/commercialhaskell/stack/issues/2876)として提出されました。 –

+0

それは動作します!ありがとう、バグを提出して+1。 – schoettl

関連する問題