Sorbet - 无法解析常量

Sorbet - Unable to resolve constant

在运行srb initsrb tc传入一个新的Rails项目后,我安装了RSpec和srb tc现在有很多抱怨其中:

spec/spec_helper.rb:16: Unable to resolve constant RSpec https://srb.help/5002
    16 |RSpec.configure do |config|

我该如何解决这个错误?

这是因为 Sorbet 默认情况下不知道 anything defined in a gem。它需要为 gem 生成一个 RBI 文件以了解 gem 的常量和 API。

安装新的 gem 时,您必须更新 RBI 文件,

很容易做到这一点
srb rbi update

注意:如果 No such file or directory @ rb_sysopen - update 出错,请更改 this line in your local gem to use STDIN.gets instead of Kernel.gets. There are at least a couple PRs addressing the issue,因为此答案未合并。

我怀疑 srb init 没有正确完成。我在 sorbet/gems/rspec-core.rbi 和其他一些 rspec gems rbi.

中定义了 RSpec 模块

sorbet/gems 文件夹吗? srb rbi gems 适合你吗?如果他们不这样做,请查看 Slack 频道并在那里询问。

编辑:问题出在初始 srb init 之后安装的 gems。对于那些,您应该 运行 srb rbi gems 为添加的宝石生成 RBI 文件。