2013-03-14 43 views
6

file1.scss薩斯功能不能從導入文件

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

file2.scss

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

file3.scss

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

file3.css的輸出包含

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

即使我直接導入到file2.scss中,我也無法使我的toPx函數正常工作。如果我在file2.scss中聲明toPx,它會起作用。

我是SASS的新手,所以假設我在這裏錯過了簡單的東西,是否有人能告訴我什麼?令人驚訝的是,我使用的sass編譯器Scout並沒有拋出錯誤,而只是將toPx(10)渲染到輸出CSS中。

編輯

我發現這個參考這似乎表明,我將需要使用Ruby的API,以實現一個全球性的功能。有人能夠澄清?

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

回答

0

我偶然發現了一個黑客答案,那讓我覺得這可能是一個童子軍錯誤。

我改變file3.scss這個

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

在編譯後,它的工作如預期。接下來我將我的文件改回到我在問題中描述的方式,現在我所有的toPx調用都可以在任何文件中工作。