2016-04-06 8 views
0

私はstack installコマンドを使用して、新しいプロジェクトの依存関係を保存しています。これらの依存関係をstack.yamlに保存するにはどうすればよいですか?私が何かが欠けていない限り、私はスタックがプロジェクトの依存関係を記録している場所を見ることができず、これについてドキュメントで何かを見つけることができないようです。スタックを取得して依存関係を保存する方法は?

+2

この機能リクエストには未解決の問題があります:https://github.com/commercialhaskell/stack/issues/1933 –

答えて

4

依然として依存関係は.cabalファイルに保存されます。 the Stack FAQから:変更なしに、モジュール、実行ファイル、テストスイートなど:

  • .cabalファイルは、各パッケージのために設けられていない、とちょうどそれが徒党インストール世界ではないように、すべてのパッケージ・レベルのメタデータを定義していますこの正面には全くありません。
  • stack.yamlファイルは、1つ以上のパッケージを参照し、依存関係の発生場所に関する情報を提供します。

あなたが使用しているLTS Haskellのスナップショットよりも依存関係の追加のバージョンが必要な場合は、extra-deps portion of the stack.yaml fileにそれらを追加します。

+0

カバールファイルにdepsを追加する方法を自動化する方法はありますか?他の言語のパッケージマネージャーを使って、正しいバージョンの依存ファイルをファイルに追加する処理がうまくいきます。またはこれは意図的な設計の決定ですか? –

+1

私はそれを自動化する方法はないと思います。私はそれが複雑な '.cabal'ファイルの可能性と、単一のStackプロジェクトで複数のパッケージと複数の.cabalファイルを持つことができるという意図的な決定だと思います。本来、ノードプロジェクトの 'packages.json'ファイルほどシンプルではありません。 –

+3

Stackは 'package.yaml'ファイルもサポートしています。これは' .cabal'ファイルよりはるかに簡単です。 [hpack](https://github.com/sol/hpack)は、YAMLファイルをCabalファイルに変換します。 –

関連する問題