2012-11-06 12 views
8

Ich arbeite an einem Compass-Projekt und meine endgültige CSS-Ausgabe ist riesig, so dass es blessed sein muss.Wie Kompass mit Segen kombinieren?

Ich verwende Codekit, um meine SCSS-Dateien zu kompilieren, und es hat die Bless-Option für die weniger und Sass-Dateien, aber unglücklicherweise scheint diese Option nicht für die Kompass-Projekte verfügbar (BTW gibt es keine Problemumgehung, um das Problem zu beheben https://github.com/bdkjones/CodeKit/issues/163)

Gibt es eine alternative Möglichkeit, dies nach dem Kompilieren automatisch zu tun? Ist es möglich, die css-Datei mit nodejs anzusehen und dann zu segnen?

============================================== ======

UPDATE

ich mit Codekit bin nicht mehr verwende ich Grunt die Projektanlagen zu bauen und es funktioniert wie ein Charme.

Antwort

3

Nun, es scheint, dass this reference verwenden Sie einfach so etwas wie tun:

on_stylesheet_saved do |filename| 
    system('blessc ' + File.basename(filename)) 
end 

nach Bless installiert haben.

Was sie tut, ist einfach das Ereignis angebracht, nachdem Sie Ihre Compass-Datei kompilieren :) Genießen

+1

Die binäre ist „blessc“ und nicht "segnen". –

+3

Es funktioniert perfekt, ich musste nur den richtigen Pfad zu der CSS-Ausgabe festlegen: 'on_stylesheet_saved do | Dateiname | exec ('blessc' + css_dir + "/" + Datei.Basename (Dateiname) + "-f") Ende' –

+0

Aus irgendeinem Grund funktioniert das jetzt nicht für mich. Vielleicht hat sich etwas mit meiner Version von CodeKit geändert ...Früher hat es funktioniert, aber jetzt nicht .... – Scott

1

Diese für den regulären Kompilierungsbefehl funktioniert, aber es funktioniert nicht, wenn Sie es sehen. Nachdem Bless abgeschlossen ist, endet der Überwachungsprozess.

0

fand ich, dass blessc wäre einfach nicht ausführen, ich eine dieser beiden Fehler bekommen würde:

config.rb: Keine solche Datei oder das Verzeichnis - blessc (was auch immer Dateinamen)

oder

env: Knoten: Keine solche Datei oder das Verzeichnis

Es stellt sich heraus, dass blessc/node.js in/usr/local/bin installiert ist und nicht in der PATH-Variablen für ruby ​​exec (/ usr/bin:/bin:/usr/sbin:/sbin) . Der folgende Code funktioniert:

on_stylesheet_saved do |filename| 
    exec('PATH=$PATH:/usr/local/bin; blessc ' + filename + ' -f') 
end 

Edited hinzufügen: Wenn nach diesem Sie Fehler erhalten, dass die Dateien nicht CSS sind von segnen, überprüfen Sie, ob Ihre absolute Pfad zur Datei Leerraum enthält. Sie können den weißen Raum entkommen, indem Sie die folgenden Schritte aus:

on_stylesheet_saved do |filename| 
    exec('PATH=$PATH:/usr/local/bin; blessc ' + (filename.gsub! ' ', '\ ') + ' -f') 
end 
0

Sie können den folgenden Codeblock versuchen, ich habe gemacht paar Änderungen von Julian Xhokaxhiu Antwort:

on_stylesheet_saved do |filename| 
    begin 
    puts "Counting number of selector in :: " + filename 
    result = system('blessc',filename,'-f') 

    if not result 
     Kernel.exit(false) 
    else 
     puts "Blessed the file to support Older version of IE." 
    end 

    rescue Exception => e 
    puts "Please install bless.\nsudo npm install -g bless." 
    Kernel.exit(false) 
    end 
end