Rails-Assets: seltsames Verhalten vor Kompilierung

9

Ich habe mich vor einem seltsamen Verhalten der assets:precompile -Aufgabe wiedergefunden, oder zumindest vor etwas, was ich nicht ganz verstehe.

Also, ich benutze Rails 3.1.3, Sprockets 2.0.3, weniger 2.0.11 für meine Webanwendung, und ich verlasse mich auf Bootstrap für das Layout, also benutze ich auch weniger Schienen 2.1.8 und weniger. rails-bootstrap 2.0.8. Ich habe den Stil wie hier angepasst.

Die Konfiguration meiner Assets lautet:

%Vor%

In application.css.scss mache ich

%Vor%

Und in Custom-Style mache ich

%Vor%

Schließlich in buttons.less Ich benutze einige Variablen und Mixins, die in den variables.less und mixins.less Bootstrap Dateien definiert sind, @white und .buttonBackground , um spezifischer zu sein.

Wenn ich bundle exec rake assets:precompile mit der obigen Konfiguration starte, schlägt die Aufgabe fehl und ich erhalte diesen Fehler:

%Vor%

Aber wenn ich das tue, ändert sich

%Vor%

Alles funktioniert gut !!

Hat es etwas mit dem Umfang weniger Variablen und Funktionen zu tun, wenn mit verschachtelten Importen gearbeitet wird? Oder etwas, das mit der Reihenfolge zu tun hat, die weniger Parser oder Sprockets, verarbeitet die Import-Struktur?

Vermisse ich etwas oder mache etwas falsch?

Danke:)

Hinweis: Ich erhalte den Fehler selbst bei den ursprünglichen Variablen und Mixins-Dateien, so dass er nicht mit den Überschreibungen verbunden ist, die an ihnen vorgenommen wurden.

    
mokagio 17.03.2012, 16:55
quelle

3 Antworten

1

Ich kann mir gerade eine von zwei Möglichkeiten vorstellen:

1) Sie sollten application.css.scss in application.css.less ändern und verwenden:

@import "custom-style";

anstelle der Kettenräder //= require ...

2) Der LESS-Compiler ist sehr flink bezüglich seiner Semikola. Ich habe bemerkt, dass du es getan hast @import "custom-style/buttons" - es sollte @import "custom-style/buttons";

sein

Weiß nicht, ob das Problem wirklich so einfach ist, aber es ist ein Anfang.

    
wisew 11.07.2012 01:47
quelle
0

Haben Sie versucht, die Datei in buttons.css.less umzubenennen, aber die Erweiterung vom @import (d. h. @import "buttons" ) zu entfernen?

So mache ich es mit SCSS und es funktioniert gut.

Ein weiterer Gedanke ist, das //=require custom-style in application.css.less durch eine @import "custom-style" -Direktive zu ersetzen. Das Schienenhandbuch hier empfiehlt die Verwendung von @import (das mit SCSS / LESS verarbeitet wird). sind über //=require (was mit Kettenrädern verarbeitet wird):

  

Wenn Sie mehrere Sass-Dateien verwenden möchten, sollten Sie die Regel Sass @ import anstelle dieser Anweisungen von Sprockets verwenden. Mit den Direktiven von Sprockets sind alle Sass-Dateien in ihrem eigenen Bereich vorhanden, sodass Variablen oder Mixins nur innerhalb des Dokuments verfügbar sind, in dem sie definiert wurden.

    
Luke Abbott 19.03.2012 20:07
quelle
0

Das beantwortet deine Frage nicht wirklich, aber ist der einzige Grund, warum du sass und weniger twitter Bootstrap verwendest? Wenn Sie es vorziehen, nur sass zu verwenden, gibt es einige Bootstrap-Edelsteine, bei denen die Autoren die weniger in scss konvertieren, wie bootstrap-sass . Bevor ich zu viel Zeit verschwendet habe, um beide in einem Projekt zu jonglieren, würde ich mir das eine oder andere kaufen, aber das ist nur meine Meinung.

    
Brandon 12.11.2012 05:30
quelle