Использование libsass с конвейером Rails

Я пытаюсь заставить libsass работать с конвейером Rails 4. До сих пор я клонировал ruby-libsass Gem из Github в папку Vendor моего приложения. Я добавил followig в свой gemfile:

gem 'sassc', path: 'vendor/ruby-libsass/'

Затем я следил за документами и добавлял подмодули для libsass. В папке libsass мне пришлось клонировать библиотеку sass2scss для ее компиляции. Я скомпилировал его с помощью make install-shared, который создал /usr/local/lib/libsass.so. После этого запуск rake assets:precompile приведет к следующей ошибке:

rake aborted!
LoadError: Could not open library 'sass': dlopen(sass, 5): image not found.
Could not open library 'libsass.dylib': dlopen(libsass.dylib, 5): image not found

Итак, я привязал libsass.dylib к /usr/local/lib/libsass.dylib. После этого я получил следующую ошибку:

NameError: uninitialized constant SassC::Lib::Context::SassOptions

Я попытался прокомментировать строку в /ruby-libsass/lib/sassc/lib/context.rb, которая вызывает SassOptions, и это, похоже, заставило ее работать и компилировать активы. Прокомментированный код в строке 20, context.rb:

layout :source_string, :pointer,
  :output_string, :string,
  # :options, SassOptions,
  :error_status, :int,
  :error_message, :string,
  :c_functions, :pointer,
  :included_files, :pointer,
  :num_included_files, :int`

Теперь проблема заключается в том, что я не вижу разницы в скорости. Он составляет около 7 секунд, чтобы скомпилировать мои активы, с добавлением libsass или без него в мой Gemfile. Поскольку исходный компилятор дал ошибку, связанный с отсутствием файла libsass.dylib, я предположил, что он фактически использует sassc вместо sass, но похоже, что это не так.

Любые идеи, что я могу потерять? У меня нет опыта работы с C, поэтому я даже не уверен, правильно ли я скомпилирован и т.д.

Ответ 1

Правильно, я, наконец, получил работу благодаря этот камень! Проект по-прежнему является WIP, и он может сделать с несколькими сторонниками.:)

Только проблема, с которой я столкнулся, заключается в том, что вам нужно полностью удалить sass-rails из вашего проекта, что может быть проблемой, если вы используете такие драгоценные камни, как ActiveAdmin. Однако есть обходные пути. Тогда, простые файлы css, которые входят в ваши scss файлы с @import, должны иметь .css в конце имени файла в импорте.