Sass/Compassで保存した際に非圧縮と圧縮したCSSファイルを出力する
Sass/Compassでは保存の際にminify圧縮するか圧縮しないかを選択できますが、両方出力したい場合、次のような方法で出力できます。
config.rbに以下のコードを追加します。
output_style = :expanded
on_stylesheet_saved do |filename|
if File.exists?(filename)
minifyFile = filename.gsub('.css', '.min.css')
FileUtils.cp filename, minifyFile
file = File.read minifyFile
colon = ':'
semicolon = ';'
comma = ','
open_brace = ' {'
close_brace = '}'
file.gsub!(/\n/,' ')
file.gsub!(/\/\*.*?\*\//m,'')
file.gsub!(/\s*:\s*/,colon)
file.gsub!(/\s*;\s*/,semicolon)
file.gsub!(/\s*,\s*/,comma)
file.gsub!(/\s*\{\s*/,open_brace)
file.gsub!(/\s*\}\s*/,close_brace)
file.gsub!(/\s\s+/,' ')
File.open(minifyFile, 'w+') do |f|
f << file
end
end
end
そうすると、たとえばstyle.sassをコンパイルすると非圧縮のファイルがstyle.cssとして、圧縮されたファイルがstyle.min.cssとして出力されます。
(Rubyがよくわからずに書いているのでツッコミ大歓迎!!)
参考:Minimizing CSS Files with Ruby | BenEngebreth.org
関連エントリー
Google ChromeでCSSがSassの何行目に記述されているか確認する方法
Compassでスプライト画象を高速に書き出す方法
CompassでCSS Spriteする際にスプライト画像間のマージンを取る方法
CompassでデータURI スキーム
CompassでCSSスプライト
スポンサードリンク
«CSS3のkeyframe AnimationをFPSベースで設定する「fpsAnimation.js」 | メイン | クロスブラウザを意識した「transitionend 」»