file1.scss
@function toPx($n) {
@return $n + 0px;
}
Run Code Online (Sandbox Code Playgroud)
file2.scss
body {
font-size:toPx(10);
}
Run Code Online (Sandbox Code Playgroud)
file3.scss
@import "file1.scss";
@import "file2.scss";
Run Code Online (Sandbox Code Playgroud)
file3.css的输出包含
body {
font-size:toPx(10);
}
Run Code Online (Sandbox Code Playgroud)
即使我直接导入到file2.scss中,我也无法使用toPx函数.如果我在file2.scss中声明toPx它会起作用.
我是SASS的新手所以假设我在这里缺少一些简单的东西,有人能告诉我什么吗?
令人惊讶的是Scout,我正在使用的sass编译器,不会抛出错误,而只是将toPx(10)渲染到输出CSS中.
编辑
我发现这个引用似乎表明我需要使用Ruby API才能实现全局功能.有人能够澄清吗?
http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#adding_custom_functions
我偶然发现了一个黑客答案,这让我认为这可能是一个 Scout 错误。
我将 file3.scss 更改为这个
@import "file1.scss";
@import "file2.scss";
body {
font-size:toPx(10);
}
Run Code Online (Sandbox Code Playgroud)
编译后,它按预期工作。接下来,我将文件改回我在问题中描述的方式,现在我对 toPx 的所有调用都可以在任何文件中工作。