11

.scss一連のファイルを異なるファイル名にコンパイルしたいと考えています。

開発では、たとえばコンパイルしたい。foo.scssfoo.dbg.css(縮小されておらず、コメント付き)。本番環境では、例えばしたいです。foo.min.css(縮小)。

SASS/Compassにターゲット拡張機能として何を使用するかを伝える方法はありますか? コマンドラインスイッチ?オプションconfig.rb

最初にコンパイルしてからファイルの名前を変更するスクリプトを作成することは、compass watch効率的に使用できないため、悪いオプションのように思えます。

(まあ、 2 つの異なる出力ディレクトリにコンパイルして、そこからファイルをコピーするスクリプトを作成することはできますが、少しぎこちなく感じます。)

更新:ウォッチコードの簡略化されたバージョンを作成することで、問題を回避しました。何かが変更されると、2 つの異なる出力ディレクトリへの再コンパイルがトリガーされ、ファイルの名前が変更されて移動されます。

4

3 に答える 3

6

エラーが発生したため、アリレザ・ファタヒの答えがうまくいかなかったので、私にとってうまくいく別の例を見つけました

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
于 2014-08-18T13:42:50.617 に答える
4

いいえ、できません。RTL スタイルシートに関するメーリング リストで同じ質問をしました。ただし、別の「config.rb」ファイルを使用してコンパス コンパイルを実行できます。試してみてくださいcompass compile -c debug.rb

UPDATE : Compass はまだできませんが、Gulp は Sass と Compass を使用して複数のターゲット css ファイルを監視および生成できます。https://github.com/Snugug/gulp-css-target/を参照してください

于 2012-09-13T18:05:01.613 に答える
2

これを構成に追加できます。

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
于 2014-01-08T06:23:38.273 に答える