Haskell 我是否可以省略或指定一个";“哑巴”;'的值;分解器';在我的书堆里

Haskell 我是否可以省略或指定一个";“哑巴”;'的值;分解器';在我的书堆里,haskell,haskell-stack,Haskell,Haskell Stack,我将stack.yaml文件与指定的--resolver一起使用,因此resolver键在stack.yaml中总是被忽略(或应该忽略) 有没有办法在stack.yaml本身中指定这个事实?或者有一个成语来表达这一点。我只想从文件中省略解析器,但这是不允许的。以这种方式使用堆栈不是惯用的做法,但您可以将任何内容放入解析器字段,如果您提供--resolver标志,堆栈将忽略它。例如: $ cat stack.yaml # stack.yaml resolver: none packages: []

我将
stack.yaml
文件与指定的
--resolver
一起使用,因此
resolver
键在
stack.yaml
中总是被忽略(或应该忽略)


有没有办法在
stack.yaml
本身中指定这个事实?或者有一个成语来表达这一点。我只想从文件中省略
解析器
,但这是不允许的。

以这种方式使用堆栈不是惯用的做法,但您可以将任何内容放入
解析器
字段,如果您提供
--resolver
标志,堆栈将忽略它。例如:

$ cat stack.yaml
# stack.yaml
resolver: none
packages: []
extra-deps:
- tardis-0.2.0.0

$ stack repl
Unable to load custom resolver none from local file:
  /Users/dan/scratch/stack-no-resolver-test/none
Exception: InvalidYaml (Just (YamlException "Yaml file not found: /Users/dan/scratch/stack-no-resolver-test/none"))

 $ stack --resolver lts-12.0 repl
...
Configuring GHCi with the following packages:
GHCi, version 8.4.3: http://www.haskell.org/ghc/  :? for help 

您只需要能够理解,对于您的用例,“无法加载自定义解析器无”错误消息意味着您忘记在命令行上提供
--resolver

如果您总是使用
--resolver
标志指定解析器,为什么不在
stack.yaml
中编写相同的解析器呢?你经常更换解析器吗?@Indigamer:这不是一对一的,我正在努力避免(a)文件激增和(b)在几个地方写同样的东西。例如,一个
just_use_resolver.yaml
和另一个
add_extra_dep_xyz.yaml
,每一个都适用于多个不同的解析器。如果使用类似
resolver:chooseTheResolverOnTheCLI
的方法来记录这一点,我会有点紧张。这样,如果用户仔细阅读,
stack
有望在问题上产生错误提示。