基于环境设置的Sass条件

can*_*era 4 sass compass-sass

在Compass config.rb文件中,您可以设置environment:development:production.

是否可以在Sass条件中使用此设置?这就是我想要做的事情:

@if (environment === :development) {
    @import 'debug';
}
Run Code Online (Sandbox Code Playgroud)

解决了:我在起草问题时找到了答案.无论如何都会发帖,因为我没有发现任何确切的解释这个问题.

can*_*era 10

部分由于Compass存储库中的这个问题,我发现你可以在Sass中使用基于设置的条件,如下所示:

@if compass-env() == 'development' {
    body {
        color: red;
    }
}
Run Code Online (Sandbox Code Playgroud)

确认这适用于Sass 3.2.5 + Compass 0.12.2 + Ruby 1.9.3p194.

但是你不能这样做:

@if compass-env() == 'development' {
    @import 'debug';
}
Run Code Online (Sandbox Code Playgroud)

抛出语法错误:"导入指令可能不在控制指令或mixins中使用.

因此,解决方法是对@import文件进行处理,然后将其整个内容包装在有条件的环境中.