2013-03-14 37 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调用都可以在任何文件中工作。