是否可以使用Node-Sass解码JSON文件?
例如:
@import "../data/data.json";
Run Code Online (Sandbox Code Playgroud)
我需要将这些数据直接迭代到变量中
欢迎任何帮助:)
Sti*_*ler 10
sass-json-vars是一个很好的宝石,但不适用node-sass(这是原始问题的要求).
相反,尝试node-sass-json-importer,它本质上是相同的东西,只是重新适应了node-sass导入器API.
有一个名为Sass JSON Vars的宝石可以完全满足您的需求.
您可以使用以下命令行代码安装gem:
gem install sass-json-vars
Run Code Online (Sandbox Code Playgroud)
对于使用Sass> = 3.3的项目
将变量放在JSON文件中:
// variables.json
{
"font-sans": "Helvetica, sans-serif",
"colors": {
"red": "#c33"
}
}
Run Code Online (Sandbox Code Playgroud)
在Sass中导入文件以公开变量名称:
@import "variables.json"
body {
color: map-get($colors, red);
font: $font-sans;
}
Run Code Online (Sandbox Code Playgroud)
编译时需要sass-json-vars:
sass style.scss -r sass-json-vars
Run Code Online (Sandbox Code Playgroud)
对于使用Sass <= 3.2的项目
将变量放在JSON文件中:
// variables.json
{
"font-sans": "Helvetica, sans-serif",
"colors-red": "#c33"
}
Run Code Online (Sandbox Code Playgroud)
在Sass中导入文件以公开变量名称:
@import "variables.json"
body {
color: $colors-red;
font: $font-sans;
}
Run Code Online (Sandbox Code Playgroud)
编译时需要sass-json-vars:
sass style.scss -r sass-json-vars
Run Code Online (Sandbox Code Playgroud)
更多信息 :
我不太确定你会如何做到这一点,但这里有一个关于如何向 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
Run Code Online (Sandbox Code Playgroud)
将其添加到文件末尾config.rb,并确保安装了 json ruby gem:
gem install json
Run Code Online (Sandbox Code Playgroud)
并运行:
compass compile --force
Run Code Online (Sandbox Code Playgroud)
让这一切发挥作用。
*这显然未经测试并且不起作用,但它可能会帮助您到达您需要去的地方。