是否可以为haskell脚本指定`stack.yaml`文件?

Gai*_*ith 8 haskell haskell-stack

假设我的haskell项目目录中有以下脚本:

#!/usr/bin/env stack
-- stack --resolver lts-12.5 script

-- some imports here

main :: IO ()
main = do
  -- some code here
Run Code Online (Sandbox Code Playgroud)

我想使用stack.yaml项目目录中存在的文件,以获取所需的包,因为我想从特定的git提交中获取它们而不是lts-12.5.

我尝试过添加--stack-yaml stack.yaml,--resolver lts-12.5但是当我运行脚本时,我收到了这个警告:Ignoring override stack.yaml file for script command: stack.yaml.

是否可以将我的stack.yaml文件用于脚本?或者是否可以指定我想从中获取包的git提交(比如使用locationwith commitgitinside stack.yaml)?

Mic*_*man 7

您可以使用自定义快照文件实现此目的.例如,在snapshot.yaml:

resolver: ghc-8.4.3
name: has-acme-missiles
packages:
- acme-missiles-0.3
Run Code Online (Sandbox Code Playgroud)

Main.hs:

#!/usr/bin/env stack
-- stack --resolver snapshot.yaml script
import Acme.Missiles

main :: IO ()
main = launchMissiles
Run Code Online (Sandbox Code Playgroud)

结果是:

$ ./Main.hs 
Nuclear launch detected.
Run Code Online (Sandbox Code Playgroud)