You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode加载Database.SQLite.Simple失败,HLS与cabal运行正常

解决步骤与调试方向

核心问题分析

你遇到的矛盾点(cabal run正常但VSCode报错),本质是VSCode的Haskell扩展未正确关联项目的cabal构建环境——cabal采用nix-style构建后,依赖包会存放在项目本地的store中,全局ghc-pkg看不到是正常行为,无需纠结这点。

1. 校验cabal文件依赖配置

确保sqlite-simple依赖是写在目标可执行文件的build-depends块中,而非仅在library块:

executable generate-hs
  main-is:             Main.hs
  build-depends:       base >=4.16.4.0,
                       scotty,
                       sqlite-simple >=0.4.18.2  # 必须在这里
  hs-source-dirs:      app
  default-language:    Haskell2010

执行cabal build exe:generate-hs确认构建无报错,保证依赖已正确下载并编译。

2. 修正hie.yaml配置

hie.yaml无需手动添加依赖,只需正确指定cabal组件。删除你添加的依赖条目,确保配置为:

cradle:
  cabal:
    component: "exe:generate-hs"

保存后,在VSCode中执行Ctrl+Shift+P > Haskell: Restart Haskell Language Server。

3. 重置VSCode的HLS会话与缓存

  • 执行Ctrl+Shift+P > Developer: Reload Window,彻底重启VSCode的会话
  • 若仍有问题,删除项目根目录下的.hie文件夹(HLS缓存目录),再重启HLS

4. 检查VSCode扩展的环境路径

在VSCode设置中搜索Haskell: GHC Path和Haskell: Cabal Path,确保指向ghcup安装的版本:

  • GHC路径:~/.ghcup/bin/ghc
  • Cabal路径:~/.ghcup/bin/cabal
    避免使用系统自带的旧版本GHC/Cabal。

5. 解决textDocument/foldingRange错误

该错误多由HLS的折叠插件异常导致:

  • 在VSCode设置中搜索Haskell: Plugin Preferences,添加配置禁用折叠插件:
    "haskell.plugin.folding.enable": false
    
  • 或升级HLS到对应GHC 9.4的最新版本(当前GHC 9.4对应的HLS最新版为2.6.0.0),通过ghcup install hls --ghc 9.4.7安装。

6. 放弃全局安装依赖

不要执行cabal install sqlite-simple全局安装依赖,这会干扰cabal的项目本地依赖隔离机制。若已全局安装,可执行ghc-pkg unregister sqlite-simple删除全局包。

内容的提问来源于stack exchange,提问作者uninterestedSwift

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 07:33:13