【发布时间】:2016-02-14 23:06:27
【问题描述】:
我是 Middleman 和 Ruby 的新手。我已经先安装了rvm:
command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
\curl -L https://get.rvm.io | bash -s stable --ruby
我在 PATH 中添加了 ~/.rvm/bin,然后使用 rvm 安装了 Ruby:
rvm install ruby
rvm --default use ruby-2.2.1
然后我安装了 Middleman 并创建了一个新项目:
gem install middleman
cd ~/Documents/Web
middleman new my_project
cd my_project
我安装了 middleman-bower:
gem install middleman-bower
我在 Gemfile 中添加了:
gem 'middleman-bower'
在 config.rb 中:
activate :bower
sprockets.append_path File.join "#{root}", "bower_components"
然后运行:
bundle install
并尝试了以下测试:
middleman build
然后我得到以下错误:
/home/alain/.rvm/gems/ruby-2.2.1/gems/middleman-core-4.1.1/lib/middleman-core/extensions.rb:68:in `register': You must provide a Middleman::Extension or a block that returns a Middleman::Extension (RuntimeError)
from /home/alain/.rvm/gems/ruby-2.2.1/gems/middleman-bower-1.0.2/lib/middleman/bower.rb:21:in `<module:Bower>'
from /home/alain/.rvm/gems/ruby-2.2.1/gems/middleman-bower-1.0.2/lib/middleman/bower.rb:5:in `<module:Middleman>'
from /home/alain/.rvm/gems/ruby-2.2.1/gems/middleman-bower-1.0.2/lib/middleman/bower.rb:4:in `<top (required)>'
from /home/alain/.rvm/gems/ruby-2.2.1@global/gems/bundler-1.8.4/lib/bundler/runtime.rb:85:in `require'
from /home/alain/.rvm/gems/ruby-2.2.1@global/gems/bundler-1.8.4/lib/bundler/runtime.rb:85:in `rescue in block in require'
from /home/alain/.rvm/gems/ruby-2.2.1@global/gems/bundler-1.8.4/lib/bundler/runtime.rb:68:in `block in require'
from /home/alain/.rvm/gems/ruby-2.2.1@global/gems/bundler-1.8.4/lib/bundler/runtime.rb:61:in `each'
from /home/alain/.rvm/gems/ruby-2.2.1@global/gems/bundler-1.8.4/lib/bundler/runtime.rb:61:in `require'
from /home/alain/.rvm/gems/ruby-2.2.1@global/gems/bundler-1.8.4/lib/bundler.rb:134:in `require'
from /home/alain/.rvm/gems/ruby-2.2.1/gems/middleman-core-4.1.1/lib/middleman-core/load_paths.rb:33:in `setup_bundler'
from /home/alain/.rvm/gems/ruby-2.2.1/gems/middleman-core-4.1.1/lib/middleman-core/load_paths.rb:15:in `setup_load_paths'
from /home/alain/.rvm/gems/ruby-2.2.1/gems/middleman-cli-4.1.1/bin/middleman:10:in `<top (required)>'
from /home/alain/.rvm/gems/ruby-2.2.1/bin/middleman:23:in `load'
from /home/alain/.rvm/gems/ruby-2.2.1/bin/middleman:23:in `<main>'
from /home/alain/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `eval'
from /home/alain/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `<main>'
谷歌没有帮助。奇怪的是没有 bower 可执行文件。我当时试了:
gem install bower
但它没有任何改变,即使我注释了 config.rb 的最后两行:
page '/*.xml', layout: false
page '/*.json', layout: false
page '/*.txt', layout: false
configure :development do
activate :livereload
end
# add bower support
activate :bower
sprockets.append_path File.join "#{root}", "bower_components"
有什么想法吗?
编辑:如果我删除 rvm 文件夹和中间人项目,然后重做除了 bower 之外的所有内容,一切都很好。所以我的问题看起来像如何正确安装凉亭
编辑:我应该说这也是我的第一个 node.js 设置!以下允许使用节点安装程序安装 bower:
apt-get install npm
npm install -g bower
但问题依旧!
我也试过this wrapping solution,但还是没有进展:
after_configuration do
sprockets.append_path File.join root.to_s, "bower_components"
end
【问题讨论】: