'listen' 3.0.3 gem 而不是 2.10.1 的中间人服务器错误

middleman server error with 'listen' 3.0.3 gem instead of 2.10.1

我运行正在使用 windows 8.1 并尝试 运行 'middleman server'(使用 gem 2.4.8 版和 Middleman 3.3 版。 12).这样做时我收到以下错误(完整错误消息请参见下面的附录):“您已经激活了 listen 3.0.3,但是您的 Gemfile 需要 listen 2.10.1”

然而 gem 'Listen' 并没有明确写在我的 gem 文件中,一定是与其他东西的依赖关系。

所以我所做的就是在我的 gem 文件中明确添加:

gem 'listen', '~> 2.10.1'

然后再次 运行

$bundle install

然而,当我再次 运行 '$middleman server' 时,它不起作用。因此,在我的终端中,我检查了我拥有的 'listen' gem 的哪个版本,并看到它是:

C:\Users\Edouard\Desktop\stylus>bundle show listen
C:/Ruby22/lib/ruby/gems/2.2.0/gems/listen-2.10.1

有人可以解决这个问题吗?因为我没有头绪..

附录 - 我收到的整个错误消息是:

C:\Users\Edouard\Desktop\stylus>middleman server
WARN: Unresolved specs during Gem::Specification.reset:
rack (< 2.0, >= 1.0, >= 1.0.0, >= 1.4.5)
uber (~> 0.0.4)
activesupport (>= 3.1, ~> 4.1)
ffi (>= 0.5.0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler/runtime.rb:34:in `block in setup': You have already activated listen 3.0.3, but your Gem
file requires listen 2.10.1. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)
from C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler/runtime.rb:19:in `setup'
from C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler.rb:127:in `setup'
from C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler/setup.rb:8:in `<top (required)>'
from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:69:in `require'
from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:69:in `require'
from C:/Ruby22/lib/ruby/gems/2.2.0/gems/middleman-core-3.4.0/lib/middleman-core/load_paths.rb:29:in `setup_load_paths'
from C:/Ruby22/lib/ruby/gems/2.2.0/gems/middleman-core-3.4.0/bin/middleman:10:in `<top (required)>'
from C:/Ruby22/bin/middleman:23:in `load'
from C:/Ruby22/bin/middleman:23:in `<main>'

我遇到了同样的问题:middleman server error with 'listen' 3.0.3 gem instead of 2.10.1

尝试删除 /Gemfile.lock 并执行 bundle install.

这对我有用。

这个问题显然与 windows 8.1 上的 gem 中间人部署有关。 这是我使用 github 应用的解决方案:

  • 从 gem 文件中删除中间人部署

  • 在与 gem 文件相同的文件夹中创建一个 rakefile(没有任何扩展名),您将 require 'middleman gh-pages'

  • 然后在你对你的工作做了一些改变之后,在主分支

  • 上做一个commit
  • 然后rake publish