2016-02-14 3 views
0

Я новичок в Middleman и Ruby. Я установил РВМ первого:Как исправить эту ошибку: вы должны предоставить Middleman :: Extension или блок, который возвращает Middleman :: Extension (RuntimeError)?

command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - 
\curl -L https://get.rvm.io | bash -s stable --ruby 

Я добавил ~/.rvm/бен в PATH, затем устанавливается рубин с РВМ:

rvm install ruby 
rvm --default use ruby-2.2.1 

Затем я установил посреднические и создал новый проект:

gem install middleman 
cd ~/Documents/Web 
middleman new my_project 
cd my_project 

и я установил Middleman-беседку:

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/[email protected]/gems/bundler-1.8.4/lib/bundler/runtime.rb:85:in `require' 
    from /home/alain/.rvm/gems/[email protected]/gems/bundler-1.8.4/lib/bundler/runtime.rb:85:in `rescue in block in require' 
    from /home/alain/.rvm/gems/[email protected]/gems/bundler-1.8.4/lib/bundler/runtime.rb:68:in `block in require' 
    from /home/alain/.rvm/gems/[email protected]/gems/bundler-1.8.4/lib/bundler/runtime.rb:61:in `each' 
    from /home/alain/.rvm/gems/[email protected]/gems/bundler-1.8.4/lib/bundler/runtime.rb:61:in `require' 
    from /home/alain/.rvm/gems/[email protected]/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>' 

Google не помог. Странно, что нет исполняемого файла. Я судимый тогда:

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" 

Любой идею пожалуйста?

EDIT: Если я удалю папку rvm и проект посредника и повторю все, кроме bower, все в порядке. Так что моя проблема выглядит так, как правильно установить колокольчик

EDIT: Я должен был сказать, что это была моя первая установка node.js! Ниже приведена возможность установки беседки с установщиком узлов:

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 

ответ

0

Я столкнулся с той же проблемой, но я использую Middleman v4, который не имеет поддержки звездочек. Я узнал об этом: https://github.com/middleman/middleman/issues/890

На сайте посредника они также упомянули (https://middlemanapp.com/basics/upgrade-v4/#external-tools), что они удалили звездочки.

Сначала я добавил это звездочки гем версию в Gemfile:

gem "middleman-sprockets", "~> 4.0.0.rc" 

Затем я добавил эту строку кода в моем файле config.rb.

import_path File.expand_path('bower_components', app.root) 

Наконец я побежал в терминале:

bundle install 

И он работал на меня оттуда.

Следует также упомянуть, что я не использовал драгоценный камень «посредника», как и вы, я устанавливаю беседку вручную.

Надеюсь, что это поможет

 Смежные вопросы

  • Нет связанных вопросов^_^