2013-03-14 19 views
6

file1.scssSass funkcja nie jest dostępna z pliku importu

@function toPx($n) { 
    @return $n + 0px; 
} 

file2.scss

body { 
    font-size:toPx(10); 
} 

file3.scss

@import "file1.scss"; 
@import "file2.scss"; 

Wyjście file3.css zawiera

body { 
     font-size:toPx(10); 
    } 

Nie mogę uruchomić funkcji toPx, nawet jeśli importuję ją bezpośrednio do pliku file2.scss. Jeśli zadeklaruję toPX w pliku file2.scss, będzie działać.

Jestem nowy w SASS, więc zakładając, że brakuje mi czegoś prostego, czy ktoś może mi powiedzieć co?

Zaskakująco Scout, kompilator sass, którego używam, nie generuje błędu, ale po prostu renderuje toPx (10) do wyjściowego CSS.

Edit

Znalazłem ten odnośnik, który zdaje się sugerować, że będę musiał użyć API Ruby w celu osiągnięcia funkcję globalnego. Czy ktoś jest w stanie wyjaśnić?

http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#adding_custom_functions

Odpowiedz

0

natknąłem się na odpowiedź hack, który sprawia, że ​​myślę, że to prawdopodobnie błąd Scout.

I zmieniany file3.scss do tego

@import "file1.scss"; 
@import "file2.scss"; 
body { 
     font-size:toPx(10); 
    } 

Po kompilacji, że to działa zgodnie z przeznaczeniem. Następnie zmieniłem moje pliki z powrotem do tego, jak opisałem w pytaniu, a teraz wszystkie moje wywołania toPx działają w dowolnym pliku.

Powiązane problemy