ここで私のソリューションは、バッチコンパスのコンパイル/複数のindependeの時計をサポートしています2つのRubyスクリプトをベースにしたSASSプロジェクトです。 Rubyファイルと
フォルダ構造:
Root
--compile.rb
--watch.rb
--Module1
----config.rb
----css
----sass
--Module2
----config.rb
----css
----sass
--Module3
----config.rb
----css
----sass
実行compile.rb
とwatch.rb
config.rb
ファイルを含むあなたのモジュールフォルダへのパスを表すいくつかの引数を持ちます。
I.e. :ruby compile.rb Module1/ Module2/ Module3/
compile.rb
require 'rubygems'
require 'compass'
require 'compass/exec'
ARGV.each do |arg|
Compass::Exec::SubCommandUI.new(["compile", arg, "--force"]).run!
end
すなわち、 :私たちは(彼らはプロセスをブロックしているので)各コンパスの時計のための別のスレッドを作成する必要がruby watch.rb Module1/ Module2/ Module3/
watch.rb
require 'rubygems'
require 'compass'
require 'compass/exec'
threads = []
ARGV.each do |arg|
threads << Thread.new {
Compass::Exec::SubCommandUI.new(["watch", arg, "--force"]).run!
}
sleep(1)
end
threads.each { |thr| thr.join }
注意してください。 Compass::Exec::SubCommandUI
は実際にスレッドセーフではなく、同じモジュールで複数の時計を1つずつ実行する代わりに、複数の時計を実行する可能性があるため、sleep(1)
が必要です。その場合は、sleep
の値を増やしてみてください。
同様のconfig.rb
ファイルをすべてのモジュールで作成します。コンパスが認識する最初のconfig.rb
を取得するには、compass init
を使用する必要があります。応答レトため
config.rb
http_path = "/"
css_dir = "css"
sass_dir = "sass"
感謝。質問は、共通のscssファイルを持つ複数の(無関係の)プロジェクトがあるときにはより多くなります。 '' ' project1に | - reset.scss + - project1.scss のProject2 | - reset.scss + - のProject2。scss project3 | - reset.scss + - project3.scss '' ' –
多分これはあなたの[回答](http://stackoverflow.com/a/9387422/286432)です。 –
私は上記の[リンク](http://stackoverflow.com/questions/9383716/loading-global-sass-files-in-multiple-compass-projects)に新しい回答を掲載しました。それが役に立てば幸い。 – elussich