在Compass config.rb
文件中,您可以将environment
设置为:development
或:production
。
是否可以在Sass条件中使用此设置?这就是我想要做的事情:
@if (environment === :development) {
@import 'debug';
}
解决:我在起草问题时找到了答案。无论如何都要发帖,因为我没有发现任何确切的解释这个问题。
答案 0 :(得分:10)
部分感谢Compass存储库中的this issue,我发现你可以在Sass中使用基于设置的条件,如下所示:
@if compass-env() == 'development' {
body {
color: red;
}
}
确认这适用于Sass 3.2.5 + Compass 0.12.2 + Ruby 1.9.3p194。
但是你不能这样做:
@if compass-env() == 'development' {
@import 'debug';
}
抛出语法错误:“导入指令不能在控制指令或mixins中使用。
因此,解决方法是@import
文件,然后将其全部内容包装在条件环境中。
答案 1 :(得分:0)
这可以通过在动态生成的SCSS文件中存储环境信息来完成(在Compass不可用时),然后可以将其导入任何需要此信息的地方。这应该在启动SASS编译器之前完成。
构建脚本如下所示(即build.sh
):
#!/bin/bash
echo "\$ENV: 'production';" > ./_sass/env.scss
../node_modules/.bin/node-sass ./_sass/style.scss ../_site/css/style.css --source-map=true
可以像这样使用此SCSS文件:
@import 'env';
@if ($ENV == 'production') {
...
// some SCSS styling to be used in production only
...
}