是否有标准或简单的方法在命令行上定义sass变量,或者从环境中传递它们?我正在做的是尝试从单个SCSS源文件创建不同的CSS文件.每个输出文件都将专门用于某个目标设备,并包含在带有媒体查询的HTML页面中.
更新:看起来这可能还不够.该@if语法实际上并没有允许有条件的青菜块,只有有条件的CSS块.这意味着即使我可以定义变量,也不允许我在文件中进行不同的处理.有任何想法吗?
使用SASS自定义功能.一个完整的工作示例如下.
styles.sass:
$primary_color: getenv("SASS_VAR_PRIMARY_COLOR", white)
body
background: $primary_color
Run Code Online (Sandbox Code Playgroud)
sass_functions.rb:
module Sass::Script::Functions
def getenv(name, default)
assert_type name, :String
value = ENV.fetch(name.value, nil)
if not value
return default
end
begin
Sass::Script::Parser.parse(value, 0, 0)
rescue
Sass::Script::String.new(value)
end
end
end
Run Code Online (Sandbox Code Playgroud)
命令行:
SASS_VAR_PRIMARY_COLOR='#123456' sass -r ./sass_functions.rb styles.sass styles.css
Run Code Online (Sandbox Code Playgroud)
如果您使用Compass,您可以module Sass::Script::Functions直接放入config.rb并使用以下代码编译样式:
SASS_VAR_PRIMARY_COLOR='#123456' sass --compass styles.sass styles.css
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1096 次 |
| 最近记录: |