我正在使用less.js(1.3.0)在客戶端解析更少的CSS。在解析器的回調中,我想獲取每個變量的值。我嘗試了以下沒有成功。less.js - 在解析器的回調中獲取變量值
var data = "@colour: red; #example { background-color: @colour; }",
parser = new less.Parser({});
parser.parse(data, function (error, root) {
console.log(root.toCSS());
var varsDef = root.variables();
for (k in varsDef) {
console.log(varsDef[k]);
// how to get the value for the var?
//not working
console.log(varsDef[k].eval());
//not working
console.log(varsDef[k].toCSS());
//is an object but looking for a string value
console.log(varsDef[k].value);
//returns an empty string
console.log(varsDef[k].value.toCSS());
}
});
eval()和toCSS()都不給我任何結果。我不理解更少的解析器的內部工作。每個變量對象都有一個變量屬性varsDef [k] .value,它是一個對象本身。但我只需要變量的字符串值。
有誰知道如何獲得變量的值作爲一個字符串?
恐怕不行。 'varsDef [k] .value.toCSS() '返回空字符串而不是「紅色」。 – Philipp 2012-08-07 07:04:21
@luke,通過向Parser構造函數提供空對象,即'(new less.Parser({},{contents:{}},我能夠在客戶端less.js v2.1'中獲得'Ruleset'對象。 }},{}))。parse(lessMarkup,function(err,ruleset){})'。問題是'lessMarkup'中有'@ import'語句,解析器失敗 – 2015-01-01 18:06:58