如何解决捆绑执行中间人服务器未按预期工作
我的默认 ruby 2.6.3 预装在我的 mac 上,我遇到了原生 gem 扩展的问题,所以在寻找解决方案后,我使用 rvm
和我的 gem 将我的 ruby 更新到 3.0.0版本是 3.2.3,捆绑版本是 1.17.3,我可以通过运行 bundle install
命令来安装所有 gem,但是当我运行 bundle exec middleman server
时,我得到了这个 LoadError
。我是 ruby 的新手,我不知道出了什么问题。
我的 gem 文件包含
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)>'
在我将 ruby 降级到 2.7.2 后,此错误已解决,但现在我收到此错误。
== 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)
解决方法
似乎是 Middleman 和 Ruby 3.0 https://github.com/middleman/middleman/pull/2448
的问题因为在那个 MR 之后没有中间人的新版本,要么使用他们的 master 分支,要么将你的 Ruby 版本更改为最新的 2.7
另一种解决方法是将 gem 'webrick'
添加到您的 gemfile 中,看看是否能解决您的问题。
我已经通过将我的 ruby 版本降级到 2.7.2 来解决它。然后使用 gem install bundler:1.17.3
安装 bundler。我删除了我的 Gemlock 文件并将 gem 'sassc','2.4.0'
添加到我的 gem 文件中,然后运行 bundle install
然后运行 bundle exec middleman server
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。