Может ли SASS/Compass скомпилировать foo.scss для foo.min.css и foo.dbg.css?
Я хочу скомпилировать набор файлов .scss
для разных имен файлов.
В разработке я хочу скомпилировать, например. foo.scss
до foo.dbg.css
(unminified и с комментариями). В производстве я хочу иметь, например. foo.min.css
(minified).
Есть ли способ сказать SASS/Compass, что использовать в качестве целевого расширения? Переключатель командной строки? A config.rb
вариант?
Запись script, которая сначала компилирует, а затем переименовывает файлы, кажется неудачной, потому что тогда я не могу эффективно использовать compass watch
.
(Ну, я мог бы скомпилировать два разных выходных каталога, а затем написать script, который копирует файлы оттуда. Это немного неуклюже.)
ОБНОВЛЕНИЕ: Я работал над проблемой, написав упрощенную версию кода часов. Когда что-то меняется, он запускает перекомпиляцию в два разных каталога вывода, затем переименовывает и перемещает файлы в место.
Ответы
Ответ 1
Нет, не может. Я задал тот же вопрос в списках рассылки о таблицах стилей RTL.
Тем не менее, вы можете запускать компас, используя разные файлы config.rb.
Попробуйте compass compile -c debug.rb
.
UPDATE. Компас все еще не может, но Gulp может смотреть и генерировать несколько целевых файлов css с помощью Sass и Compass. См. https://github.com/Snugug/gulp-css-target/
Ответ 2
Я не мог заставить Алирезу Фаттахи ответить на работу, потому что он бросил ошибки, поэтому я нашел другой пример, который работает для меня
http://h3r2on.com/2013/05/17/rename-css-on-compile.html
require "fileutils"
on_stylesheet_saved do |file|
if File.exists?(file)
filename = File.basename(file, File.extname(file))
File.rename(file, css_dir + "/" + filename + ".min" + File.extname(file))
end
end
Ответ 3
Вы можете добавить это в свою конфигурацию.
См. https://github.com/sbspk/Prepros/issues/38
require 'fileutils'
on_stylesheet_saved do |file|
if file.match('.min') == nil
require 'compass'
Compass.add_configuration(
{
:project_path => File.dirname(File.dirname(file)),
:sass_dir => File.basename(File.dirname(file)),
:css_path => File.basename(File.dirname(file)),
:output_style => :compressed
},
'alwaysmin' # A name for the configuration, can be anything you want
)
Compass.compiler.compile(File.dirname(file) + "/" + File.basename(file, '.css') + '.scss', File.dirname(file) + "/" + File.basename(file, '.css') + ".min.css")
end
end