如何配置stack new默认使用指定LTS?设置lts-20.11无效
解决Stack默认LTS版本设置不生效的问题
以下是几个排查和解决思路:
确认配置文件优先级
Stack的配置读取有明确优先级:项目根目录的stack.yaml> 用户全局配置文件(Linux/macOS为~/.stack/config.yaml,Windows为%APPDATA%\stack\config.yaml)。如果你在全局配置里设置了resolver,但项目内的stack.yaml指定了lts-20.13,全局配置会被直接覆盖。先检查项目内的配置文件是否存在冲突。清理Stack缓存
缓存残留可能导致旧快照被复用,执行以下命令彻底清理:stack clean --full stack purge之后重新运行
stack setup,让Stack重新拉取lts-20.11的快照资源。检查本地自定义快照
运行stack snapshot list查看已有的本地快照,如果存在与lts-20.11同名的自定义快照,可能会被优先调用。如果有冲突,用stack snapshot delete <快照名称>删除后再重试。验证配置加载情况
执行stack config resolver命令,查看当前实际生效的resolver版本。如果输出还是lts-20.13,检查配置文件的YAML语法(比如resolver字段的缩进是否正确,YAML对缩进层级要求严格)。检查项目级配置
若你是在某个项目中操作,务必确认项目根目录下的stack.yaml里的resolver没有被硬设为lts-20.13——项目配置的优先级始终高于全局配置。
内容的提问来源于stack exchange,提问作者Theodora
相关产品推荐
相关产品推荐

