2013-09-13 4 views
1

Я ищу для реализации SASS (http://sass-lang.org) в приложении CakePHP. Но вместо того, чтобы компилировать его с помощью командной строки через Ruby, я хочу сделать так, чтобы он автоматически конвертировал файлы SASS в CSS, когда приложение находится в режиме отладки.Компиляция SASS в CakePHP

Я сделал это в прошлом с МЕНЬШЕ. Кто-нибудь сделал что-нибудь подобное для SASS в CakePHP?

Пример того, как я вижу, он работает (на основе того, как работала моя МЕНЬШЕ реализация):

if (Configure::read('debug') > 0) 
{ 
    // import sass compiler 
    App::import('Vendor', 'vendorName'); 

    $sass_directory = ROOT . DS . APP_DIR . DS . 'webroot' . DS . 'sass' . DS; 

    $css_directory = ROOT . DS . APP_DIR . DS . 'webroot' . DS . 'css' . DS; 

    vendorName::toCss($sass_directory, $css_directory); 
} 

Так что будет читать все файлы в каталоге SASS, а затем компилировать его в CSS и поместить его в каталог CSS.

В соответствии с документами PHAMLP: https://code.google.com/p/phamlp/wiki/SassOptions этот плагин может конвертировать и перемещать целые каталоги. Любой, кто может подтвердить, что это делает то, что я думаю?

Я проверил это на отдельный PHP файл:

require_once('Vendor/PHamlP_3.2/sass/SassParser.php'); 

$sass = new SassParser(array('style'=>'nested','template_location'=>'./sass','css_location'=>'./css')); 

$css = $sass->toCss('./sass/master.scss'); 

echo $css; 

, который работает ... Но почему я потрудился объявить расположение SASS и расположение CSS в настройках, если я тогда должен сказать это где находится файл SASS (и может выбрать только один), а затем он фактически ничего не делает с файлом CSS ...

Может ли кто-нибудь дать некоторые идеи о том, как я могу заставить его автоматически принимать файлы SASS из template_directory, а затем сохранить его в каталоге CSS, скомпилированном?

Я заметил, что у PHamlP есть CakePHP-загрузка: https://code.google.com/p/phamlp/downloads/list, но она старая и, похоже, хочет запускать файлы SASS с фактическим ссылкой через Parser, а не просто компилировать их и ссылаться на созданные файлы CSS. Разве я не прав? И версия CakePHP ссылается только на файлы CSS, создавая их с помощью файлов SASS.

Обновление: Я пробовал PHamlP, и он работает только с .sass, а не с .scss! Также кажется, что можно запускать только отдельные файлы через фильтр, а не конвертировать всю папку, например. скажем, я использовал Compass и хотел скомпилировать его в один файл и т. д.

ответ

1

У меня нет времени, чтобы написать полный ответ (с примером кода и т. д.) прямо сейчас, но вы, возможно, захотите посмотрите на scssphp, похоже, у него есть возможность взять целую директорию и обработать ее, она также может перекомпилировать только измененный файл.

Как примечание стороны, если это автоматическая перекомпиляция в режиме разработчика вы ищете, SASS имеет --watch параметр к файлам SCSS авто перекомпилировать и compass имеет watch команду, которая будет делать то же самое на вершине чего множество миксинов, которые вы можете использовать в своем SCSS.

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