スポンサーリンク
2013年08月21日
SublimeTextでCompassを使うために、下記のパッケージを追加しました。
これらのパッケージを追加し、Automaticでビルドしてみると、問題なくSCSSからCSSファイルが出力されましたが、SCSSファイルと同じフォルダに出力されました。config.rbで設定したフォルダとは異なるため、何か間違っていると思い調べてみました。
SCSSファイルのコンパイルに関係するsublime-buildファイル(以下、buildファイル)を探してみたところ、以下のものが見つかりました。
ビルド実行時(Cmd+B)、Build SystemをAutomaticにした場合、作業中ファイルの種類(拡張子)と 各Packageのbuildファイルのselectorが一致したものが処理されます。
そこで、これらのbuildファイルを覗いてみると、SASS.sublime-buildが実行されていることが分かりました。さらに、一つの拡張子に対して複数のselectorが存在しても、何かしらの規則で探索され、一致する最初のbuildファイルのみ実行されるようです。
そんなこんなで、優先順位を調べるために、SASS BuildにCompass.sublime-buildを、UserにSASS.sublime-buildをコピーしてあれこれ試してみました。
てっきりbuildファイル名を昇順(ASC)で調べていき、selectorと対象のファイルが一致すると実行かと思いましたが、どうも降順(DESC)で探索しているようです。一つのPackageフォルダに複数のbuildファイルがある場合も同様に降順で探索しています。つまり、図の矢印の順番にselectorを確認しているようです。ここでも、Userフォルダ(Packages/User)が優先されます。てっきり管理ファイルでもあるのかと思いましたが、ありませんでした(おそらく)。
ですので、デフォルトのままで実行すると、降順で最初に一致するSASS.sublime-buildが実行されていたわけです。
優先順位は
・・・書いててわかりにくいです。
ざっくりと説明すると、メニューの下から順にselectorに一致するbuildファイルが実行されます。