启动 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 不确定使用哪一个。卸载旧版本的 gems 后,警告消失了。
你可以尝试:
gem cleanup lumberjack
或者:
gem list lumberjack
gem uninstall lumberjack
如果您使用的是 Bundler,您可以尝试
bundle exec guard
(或者在我的情况下为 bundle exec rspec
)。
使用捆绑器。打电话给
bundle exec guard
,而不是guard
。
仅供参考:
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
这对我有用:
bundle clean --force
然后
bundle install
重新安装宝石。
因为依赖关系,我用
gem list gem-name; gem uninstall gem-name
来一一清理gem。之后,该错误不再显示。
添加
'bundle exec'
在你发出命令之前。
我使用 ruby 2.4,在 Windows 上部署 jekyll 时遇到同样的问题,它已修复。
如果有人已经走到了这一步,但仍然没有找到答案,我就把这个留给你。
gem update --system
。我尝试了所有其他答案均无济于事。希望这对你有用。
记住,如果你想使用guard,你必须在Gemfile中添加gemguard。
group :developement, :test do
gem 'guard'
end
然后,运行
bundle install
我希望这可以帮助你。
尝试
gem uninstall <gem>
它会删除所有较年轻版本的 gem。
然后你会被问到
“如果删除此 gem,将不会满足这些依赖关系。继续 删除? [YN]”
选择答案
“不”
保留最新版本的 gem,所有依赖项仍然有效。
我在 Guard 插件 gem 中使用
bundle exec rspec
运行 Rspec 时收到此消息。原来是gemspec
文件中少了一行:
$:.push File.expand_path("../lib", __FILE__)
此行通常位于文件的顶部(在我最近使用的许多 gem 中),我已将其注释掉以了解原因。
这也对我有用:
bundle clean --force
然后
bundle install