これまでいくつか middleman を使って構築してきたページがあり、それを middleman server
のコマンドをたたいて確認をしていました。
先ほど middleman のアップデートをしてみたところ、これまでのプロジェクトで server コマンドを叩いてもエラーが出るようになってしまいました。
大したことない理由でしたが、若干ハマっていた人がいたので、解決方法をメモしておきます。
エラーの内容
エラーは下記のような状況だった
$ middleman server
/Users/username/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/bundler-1.5.3/lib
undle exec` to your command may solve this. (Gem::LoadError)
from /Users/username/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/bund
from /Users/username/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/bund
from /Users/username/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/bund
from /Users/username/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custo
from /Users/username/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custo
from /Users/username/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/midd
from /Users/username/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/midd
from /Users/username/.rbenv/versions/1.9.3-p484/bin/middleman:23:in `load'
from /Users/username/.rbenv/versions/1.9.3-p484/bin/middleman:23:in `<main>'
ちなみに、今回のアップデートは 3.2.1 => 3.3.2 にしたというくらい。
exec
のコメンドをいれたら解決するっぽいけど、ドキュメントを読んでもそんなことは書いていない。
では、問題はどこに?
middleman init での設定を確認
とりあえず、新規に init で用意したページではどうなるかも一応チェックしてみました。結果はエラーなく、普通に起動!?
あれ!?
違いを探すために Gemfile をチェックしたところ、理由は簡単、単にバージョン指定が古いままだったということ。
3.2.1 の Gemfile
# If you have OpenSSL installed, we recommend updating
# the following line to use "https"
source 'http://rubygems.org'
gem "middleman", "~>3.2.1"
# Live-reloading plugin
gem "middleman-livereload", "~> 3.1.0"
# For faster file watcher updates on Windows:
gem "wdm", "~> 0.1.0", :platforms => [:mswin, :mingw]
3.3.2の Gemfile
# If you have OpenSSL installed, we recommend updating
# the following line to use "https"
source 'http://rubygems.org'
gem "middleman", "~>3.3.2"
# Live-reloading plugin
gem "middleman-livereload", "~> 3.1.0"
# For faster file watcher updates on Windows:
gem "wdm", "~> 0.1.0", :platforms => [:mswin, :mingw]
# Windows does not come with time zone data
gem "tzinfo-data", platforms: [:mswin, :mingw]
Gemfile をアップデート後に bundle update
Gemfile をアップデートしたら、最後に bundle update をします。
$ bundle update
これで、 middleman server
がエラーなく使えるようになります。