是否可以使用Node-Sass解码JSON文件?
例如:
@import "../data/data.json";
我需要将这些数据直接迭代到变量
中欢迎任何帮助:)
答案 0 :(得分:10)
sass-json-vars是一个很棒的宝石,但不适用于node-sass
(这是原始问题的要求)。
相反,尝试node-sass-json-importer,这本质上是相同的,只是重新适应node-sass
的导入器API。
答案 1 :(得分:9)
有一个名为 Sass JSON Vars 的宝石可以完全满足您的需求。
您可以使用以下命令行代码安装gem:
gem install sass-json-vars
对于使用Sass> = 3.3
的项目将变量放在JSON文件中:
// variables.json
{
"font-sans": "Helvetica, sans-serif",
"colors": {
"red": "#c33"
}
}
在Sass中导入文件以公开变量名称:
@import "variables.json"
body {
color: map-get($colors, red);
font: $font-sans;
}
编译时需要sass-json-vars:
sass style.scss -r sass-json-vars
对于使用Sass< = 3.2
的项目将变量放在JSON文件中:
// variables.json
{
"font-sans": "Helvetica, sans-serif",
"colors-red": "#c33"
}
在Sass中导入文件以公开变量名称:
@import "variables.json"
body {
color: $colors-red;
font: $font-sans;
}
编译时需要sass-json-vars:
sass style.scss -r sass-json-vars
更多信息:
答案 2 :(得分:0)
我不太确定你会怎么做但是这里有一个关于如何为sass添加自定义ruby函数的一个很好的例子:
https://gist.github.com/chriseppstein/1561650
还有一个关于如何解析json的问题:
也许在将它们放在一起之后你可以做这样的事情吗?
module Sass::Script::Functions
def json(Sass::Script::String)
require 'rubygems'
require 'json'
JSON.parse(string)
end
end
将其添加到config.rb
文件的末尾,并确保安装了json ruby gem:
gem install json
并运行:
compass compile --force
让一切顺利。
*
这显然是未经测试的,并且不起作用,但它可能会帮助您到达您需要去的地方。