2013-04-03 3 views
2

Я запускаю Mac OS X Mountain Lion и не настраиваю Ruby через RVM. Затем я установил Middleman (http://middlemanapp.com/), который отлично работает. Я смог добавить настройки конфигурации и выполнить сборку проекта.Sass/Compass не компилируется с использованием Guard с настройкой Middleman

Мои проблемы связаны с попыткой использовать Guard для компиляции Sass/Compass и ссылки с LiveReload для автоматического обновления моего браузера.

Моей Посредник структуры проекта выглядит следующим образом:

{имя-проект}/сайт/источник

(источник папка Посредник, который компилируется в папку «сборки» в том же самом уровень)

Мой Gemfile/config.rb/guardfile здесь:

{имя-проекта}/s ite/

Ниже перечислены мои Gemfile, Config.rb и мой файл Guard.

Gemfile:

# If you have OpenSSL installed, we recommend updating 
# the following line to use "https" 
source 'https://rubygems.org' 

gem 'middleman', '~>3.0.12' 
gem 'sass'      
gem 'compass' 
gem 'oily_png' 
gem 'guard' 
gem 'guard-compass' 
gem 'guard-shell'    # Run shell commands. 
gem 'guard-livereload'  # Browser reload. 

gem 'rb-fsevent', :require => false  # Mac OSX 

Congid.rb (Также содержит некоторые конфигурации для Middleman сборки, но не связанные с Sass/Compass)

# Sass options: 
# http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#options 
sass_options = Hash.new 

# Enable Sass inspection directly from the browser. 
# 
# Chrome Canary support (Applies to Webkit Nightlies as well.): 
# http://blog.q42.nl/post/35203391115/debug-sass-and-less-in-webkit-inspector-and-save-css-cha 
# Firefox Extension: 
# https://addons.mozilla.org/en-US/firefox/addon/firesass-for-firebug 
# 
# Set to true to enable. Enabling will disable `line_comments`. 
# 
sass_options[:debug_info] = true 

## 
# Compass configuration: 
# http://compass-style.org/help/tutorials/configuration-reference 

# Development is the default environment. When compiling for production, this 
# should be flagged as :production. This can be done through the command line 
# with the following. 
# 
# $ compass compile -e production --force 
# 

environment = :development 

sass_dir = 'source/sass' 
css_dir  = 'source/css' 
js_dir  = 'source/js' 
images_dir = 'source/img' 
relative_assets = true 
output_style = (environment == :production ? :compressed : :expanded) 

Guardfile

# ~/.guardfile 

# More info at https://github.com/guard/guard#readme 

notification :off 

puts "Using guard file for markweston project." 

group :development do 

    if File.exists?("./config.rb") 
    # Compile on start. 
    puts `compass compile --time --quiet` 
    # https://github.com/guard/guard-compass 
    guard :compass do 
     watch(%r{(.*)\.s[ac]ss$}) 
    end 
    end 


    ## Look for specified files in the current and child directories. 
    ## `find` requires Ruby 1.9 or greater. 
    require 'find' 
    if Find.find(Dir.pwd).detect{|dir|dir=~/.+\.(css|js|html?|php|inc|theme)$/} 
    guard :livereload do 
     watch(%r{.+\.(css|js|html?|php|inc|theme)$}) 
    end 
    end 

    # Uncomment block above and remove this if using Ruby 1.9 or greater. 
    # https://github.com/guard/guard-livereload. 
    # guard :livereload do 
    # watch(%r{.+\.(css|js|html?|php|inc|theme)$}) 
    # end 

end 

Я могу запустить «execle exec guard», который работает, и когда я запускаю LiveReload в моем браузере, терминал сообщает мне, что браузер подключен.

Одна вещь, чтобы отметить, что я получаю эту ошибку после запуска «расслоение EXEC караул»:

NoMethodError на линии [ «264»] из /Users/Mark/.rvm/gems/ruby-1.9 .3-p385/gems/compass 0.12.2/lib/compass/configuration/inheritance.rb: активировать

Имея некоторые проблемы с тем, чтобы понять это на данный момент.

Основная проблема заключается в том, что я фактически пишу любой Sass в одном из моих .scss-файлов, хранящихся в моем sass-каталоге, они не компилируются в .css в моем каталоге css. Терминал ничего не говорит, ничего не происходит. У меня что-то не так с моей конфигурацией, но я просто не могу понять, что.

Помогите пожалуйста?

Thanks,

Оценка.

+0

@CraigColes включает ссылку на проект установки, который удобен, но стоит отметить, что сайт Middleman фактически построен в Middleman, поэтому его можно использовать в качестве демонстрации: [Middleman Guides] (https://github.com/middleman/middleman-guides), но он более сложный, чем другой пример. –

ответ

2

Мне повезло с middleman-livereload gem.

Кроме того, Посредник имеет компас и Sass встроенный, и вы можете значительно упростить это, запустив middleman server и посещение http://localhost:4567/ во время разработки, который будет заботиться о вашей предварительной обработке, а также запустить guard с live-reload, чтобы обновить ваш браузер. Вам больше не нужно будет запускать compass watch или команды guard.

Мой Gemfile выглядит следующим образом:

gem "middleman", "~> 3.0.13" 
gem "middleman-livereload" 

Итак, я настоятельно рекомендую, используя предписанные development cycle и не пытаться повторно включить Sass и компас, которые приходят запеченные в

2

Мы поставили. вместе простая настройка проекта посредника. Не стесняйтесь использовать его: https://github.com/beef/beef-middleman

+0

Приветствия ребята. У меня разные настройки для sass/compass, и я просто запутался в том, как работает Middleman. Это скрывает от вас много настроек, теперь у меня это работает. Я отметил @bookcasey правильно, потому что он первым попал туда. –

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