为什么更改 Bundlers 安装目录会导致 Sorbet 翻倒?

Why does changing Bundlers installation directory cause Sorbet to fall over?

出于与我的 CI 设置有关的原因,我需要将 Ruby gem 的安装位置从默认位置更改为:bundle config set path 'vendor/bundle'

但是,一旦我这样做,Sorbet 就失去了它的酷感并抛出了 6,000 多个错误。为什么 Sorbet 会如此敏感地依赖于 gem 的安装位置? (我在切换位置之前清除了所有 gem,所以这不太可能是由于 gem 版本的冲突)。

总结

当 gems 安装到:

/Users/my-home-directory/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems

bundle exec srb tc 工作正常。但是当 gems 安装到:

/Users/my-home-directory/project-name/vendor/bundle/ruby/2.7.0/gems/

然后 运行 bundle exec srb tc 产生了数千个错误。

默认情况下,Sorbet 会尝试对 project-name 下的整个目录进行类型检查。尝试将以下行添加到 sorbet/config:

--ignore=/vendor/bundle

(这应该自动包含在包含 https://github.com/sorbet/sorbet/pull/3897 的较新安装的冰糕中)