19

最近まで、スタックを使用してプロジェクトをビルド + 実行するために、この美しさを実行していました。

stack build && .stack-work/install/x86_64-linux/lts-4.1/7.10.3/bin/<project-name>

IRC で、これは次のように簡略化できると言われました。

stack build && stack exec <project-name>

これをさらに単純化できますか?

stack run

または少なくとも

stack run <project-name>

?

私の記憶が正しければ、これは で可能でしたcabal run

編集:

@haoformayor のコメントが近づいています。

alias b='stack build --fast --ghc-options="-Wall" && stack exec'

これにはまだプロジェクト名が必要ですが、そうですか?

私も親しくなり始めました

function stack-run () { stack build && stack exec `basename "$PWD"` }

これは、プロジェクト名がフォルダー名と一致する場合にのみ機能しますが。executable.cabal ファイルの最初のエントリについて、cabal/stack にクエリを実行できますか? または多分私たちはそれを行うことができますsed...

4

3 に答える 3

9

私は以下を使用して非常に良い経験をしました:

https://hackage.haskell.org/package/stack-run


2018-04-05 を編集:関連するスタックの問題


古い答え:

これが私が今のところやったことです。

#/usr/bin/env sh

stack build && stack exec `basename "$PWD"` "$@"

stack-run以下をmy の下にあるという名前のファイルに入れました$PATH~/.local/bin/stack-run私の場合。

これにより、

$ stack-run

任意のディレクトリ、さらには

$ stack run

私のプロジェクトのほとんどすべてで、プロジェクトの実行可能ファイルはフォルダーと同じ名前が付いているため、これは機能します。しかし、異なる名前もサポートして拡張したいと考えています。


編集 2016-09-26:これも見つけましたが、まだ試していません: https://hackage.haskell.org/package/stack-run

于 2016-01-30T21:38:00.160 に答える