Gem :: Specification.reset期间未解决的规格:

启动Guard时,我得到这个输出:

$ guard WARN: Unresolved specs during Gem::Specification.reset: lumberjack (>= 1.0.2) ffi (>= 0.5.0) WARN: Clearing out unresolved specs. Please report a bug if this causes problems. 

这是什么意思,我该如何解决?

Guardfile的内容:

 guard 'livereload' do watch(%r{.+\.(css|js|html)$}) end guard 'sass', :input => 'css', :style => :compressed, :extension => '.min.css' 

我只是靠自己运行RSpec来看到这个问题。 根据我的理解,这意味着您的系统上安装了多个已列出的gem版本,RSpec不确定要使用哪一个版本。 卸载旧版本的gem后,警告消失了。

你可以试试:

 gem cleanup lumberjack 

要么:

 gem list lumberjack gem uninstall lumberjack 

如果你使用Bundler,你可以尝试bundle exec guard (或者在我的情况下, bundle exec rspec )。

使用下面的命令为我解决了它:

 bundle clean --force 

有关更多信息,请参阅防范未解决的规范

使用Bundler。 呼叫bundle exec guard ,而不是guard

我使用gem list gem-name; gem uninstall gem-name gem list gem-name; gem uninstall gem-name来清理gem,因为依赖关系。 之后,错误不再显示。

供参考:

 gem cleanup 

为我工作。

 $ gem cleanup Cleaning up installed gems... Attempting to uninstall builder-3.2.2 Successfully uninstalled builder-3.2.2 Attempting to uninstall amatch-0.3.0 Successfully uninstalled amatch-0.3.0 Attempting to uninstall tins-1.12.0 Successfully uninstalled tins-1.12.0 Clean Up Complete 

请记住,如果你想使用警卫,你必须添加gem护卫Gemfile。

 group :developement, :test gem 'guard' end 

然后运行

 bundle install 

我希望这可以帮助你。

我正在使用bundle exec rspec在Guard插件gem中运行Rspec时收到此消息。 原来在gemspec文件中是一个缺失的行:

 $:.push File.expand_path("../lib", __FILE__) 

这行通常在文件的顶部(在我最近正在处理的许多gem中),而且我已经评论过了,看看为什么。

这对我工作:

 bundle clean --force 

然后

 bundle install 

重新安装gem。