bundle exec middleman server not working as expected

2.1k Views Asked by At

I was facing issues with native gem extension with my default ruby 2.6.3 that came pre installed with my mac so after looking for the solution, I have updated my ruby to 3.0.0 using rvm and my gem version is 3.2.3 and bundle version is 1.17.3, I am able to install all the gems by running bundle install command but when I run bundle exec middleman server I get this LoadError. I am new to ruby and I can't figure out what's wrong. My gem file contains

ruby '>=2.3.1'
source 'https://rubygems.org'
gem 'middleman', '>=4.2.1'
gem 'middleman-syntax', '3.0.0'
gem 'middleman-autoprefixer', '2.7.1'
gem 'middleman-sprockets', '4.1.0'
gem 'rouge', '2.0.7'
gem 'redcarpet', '3.4.0'
gem 'nokogiri', '1.8.2'
bundler: failed to load command: middleman (/Users/shivrajnag/.rvm/gems/ruby-3.0.0/bin/middleman)
LoadError: cannot load such file -- webrick
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/middleman-core-4.2.1/lib/middleman-core/preview_server.rb:1:in `require'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/middleman-core-4.2.1/lib/middleman-core/preview_server.rb:1:in `<top (required)>'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/middleman-cli-4.2.1/lib/middleman-cli/server.rb:38:in `require'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/middleman-cli-4.2.1/lib/middleman-cli/server.rb:38:in `server'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `block in invoke_all'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `each'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `map'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `invoke_all'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/group.rb:232:in `dispatch'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:116:in `invoke'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor.rb:40:in `block in register'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/gems/middleman-cli-4.2.1/bin/middleman:70:in `<top (required)>'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/bin/middleman:23:in `load'
  /Users/shivrajnag/.rvm/gems/ruby-3.0.0/bin/middleman:23:in `<top (required)>'

After I downgraded my ruby to 2.7.2 this error was resolved but now I am getting this error instead.

== The Middleman is loading
Traceback (most recent call last):
        98: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/bin/ruby_executable_hooks:22:in `<main>'
        97: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/bin/ruby_executable_hooks:22:in `eval'
        96: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/bin/middleman:23:in `<main>'
        95: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/bin/middleman:23:in `load'
        94: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-cli-4.2.1/bin/middleman:70:in `<top (required)>'
        93: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
        92: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
        91: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
        90: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
        89: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor.rb:40:in `block in register'
        88: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:116:in `invoke'
        87: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/group.rb:232:in `dispatch'
        86: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `invoke_all'
        85: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `map'
        84: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `each'
        83: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:134:in `block in invoke_all'
        82: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
        81: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
        80: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-cli-4.2.1/lib/middleman-cli/server.rb:53:in `server'
        79: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/preview_server.rb:34:in `start'
        78: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/preview_server.rb:144:in `initialize_new_app'
        77: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/preview_server.rb:144:in `new'
        76: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/application.rb:309:in `initialize'
        75: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:28:in `block in install_methods!'
        74: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
        73: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
        72: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
        71: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:57:in `execute'
        70: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:431:in `each'
        69: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `traverse_depth_first'
        68: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `each'
        67: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:57:in `block in execute'
        66: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:57:in `instance_exec'
        65: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/extensions/on_disk.rb:21:in `ready'
        64: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:221:in `ensure_resource_list_updated!'
        63: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:221:in `synchronize'
        62: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:224:in `block in ensure_resource_list_updated!'
        61: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument'
        60: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:166:in `instrument'
        59: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:231:in `block (2 levels) in ensure_resource_list_updated!'
        58: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:431:in `each'
        57: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `traverse_depth_first'
        56: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `each'
        55: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:232:in `block (3 levels) in ensure_resource_list_updated!'
        54: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument'
        53: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:166:in `instrument'
        52: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/store.rb:234:in `block (4 levels) in ensure_resource_list_updated!'
        51: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
        50: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
        49: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
        48: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/extension.rb:60:in `manipulate_resource_list'
        47: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument'
        46: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:166:in `instrument'
        45: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/extension.rb:61:in `block in manipulate_resource_list'
        44: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/extension.rb:111:in `linked_resources!'
        43: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/extension.rb:98:in `linked_resources'
        42: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/extension.rb:98:in `map'
        41: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
        40: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
        39: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
        38: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/resource.rb:36:in `sprockets_asset'
        37: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument'
        36: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:166:in `instrument'
        35: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/middleman-sprockets-4.1.0/lib/middleman-sprockets/resource.rb:37:in `block in sprockets_asset'
        34: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/base.rb:119:in `[]'
        33: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/environment.rb:31:in `find_asset'
        32: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/base.rb:81:in `find_asset'
        31: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
        30: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
        29: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
        28: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
        27: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
        26: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
        25: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `reverse_each'
        24: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
        23: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
        22: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/bundle.rb:27:in `call'
        21: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
        20: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
        19: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
        18: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
        17: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
        16: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
        15: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `reverse_each'
        14: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
        13: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
        12: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:33:in `call'
        11: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:22:in `block in <class:CompositeProcessor>'
        10: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
         9: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `reverse_each'
         8: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
         7: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
         6: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/sassc_processor.rb:31:in `call'
         5: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/sassc_processor.rb:27:in `instance'
         4: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/sassc_processor.rb:27:in `new'
         3: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/sassc_processor.rb:42:in `initialize'
         2: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/sassc_processor.rb:42:in `require'
         1: from /Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/autoload/sassc.rb:2:in `<top (required)>'
/Users/shivrajnag/.rvm/gems/ruby-2.7.2/gems/sprockets-4.0.2/lib/sprockets/autoload/sassc.rb:2:in `require': cannot load such file -- sassc (LoadError)
2

There are 2 best solutions below

2
ArashM On

Seems like an issue with Middleman and Ruby 3.0 https://github.com/middleman/middleman/pull/2448

As there hasn't been a new version from middleman after that MR, either use their master branch or change your Ruby version to latest 2.7

Another workaround would be to add gem 'webrick' into your gemfile and see if that solves your issue.

1
coderX On

I have solved it by downgrading my ruby version to 2.7.2 . Then installed bundler using gem install bundler:1.17.3. I have deleted my Gemlock file and added gem 'sassc', '2.4.0' to my gem file and then run bundle install and then run bundle exec middleman server