2016-08-22 11 views
4

私はプロジェクトにHaskell Stackを使用しています。Hasteを含めると、クライアント側のロジックがコンパイルされます。私はスタックが環境の中で異なるビルドとインストールの問題を抽象化しているのが好きです。私のマシン上にビルドされていれば、それは他の誰かの上に構築されます。スタックツールチェーンへの統合

スタックツールチェーンにHasteを統合するにはどうすればよいですか?一度のセットアップ作業はうまくいきますが、コードが新しいシステムに移行するたびにツールチェーン全体を再作成する必要はありません。

+0

私はスタックの答えは分かりませんが、[shake](http://shakebuild.com)のような完全なビルドシステムにステップアップしたいかもしれません。 – MarLinn

答えて

2

これはうまくいくはずですが、私はthisの既知のバグのために余分な問題が発生しているため、これを塩分で取ります。 .cabalファイルに適切な依存関係、特にif impl(haste) ..の部分(see this)があることを確認してください。 Hastの依存関係のほとんどのようです(そして、Hasteは今日のGHC 7.10.3を使用しているので)lts-6.14で動作するので、私はそれをリゾルバとして使いました。

速攻-project.cabal

name:    haste-project 
version:    0.1.0.0 
category:   Web 
build-type:   Simple 
cabal-version:  >=1.10 

executable haste-project-exe 
    hs-source-dirs:  app 
    main-is:    Main.hs 
    build-depends:  base >= 4.8 && < 4.9 
    if impl(haste) 
    build-depends:  haste-lib >= 0.5 && < 0.6 
    else 
    build-depends:  haste-compiler >= 0.5 && < 0.6 
    default-language: Haskell2010 

stack.yaml

extra-deps: 
- HTTP-4000.2.23 
- ghc-simple-0.3 
- haste-compiler-0.5.4.2 
- shellmate-0.2.3 
resolver: lts-6.14 

次に、同じディレクトリから、あなたは今usual setup instructions for Hasteではなく、のスタック補完を進めることができますCabalコマンド:

$ stack build 
$ stack install haste-compiler # installs haste-boot, haste-cat, haste-pkg, and hastec 
$ stack exec haste-boot  # setup Haste (where I get the bug I mentioned above) 

その後、すべての通常のコマンドを実行できるはずですが、接頭辞はstack exec --です。たとえば、

$ stack exec -- hastec -O2 -fglasgow-exts myprog.hs 
関連する問題