Sorbet - 无法解析常量
Sorbet - Unable to resolve constant
在运行srb init
和srb 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 文件。
在运行srb init
和srb 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.
有 sorbet/gems
文件夹吗? srb rbi gems
适合你吗?如果他们不这样做,请查看 Slack 频道并在那里询问。
编辑:问题出在初始 srb init
之后安装的 gems。对于那些,您应该 运行 srb rbi gems
为添加的宝石生成 RBI 文件。