我正在使用less.js(1.3.0)少解析客户端上的CSS。在解析器的回调内部,我想获取每个变量的值。我尝试了以下但没有成功。

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()

应该是值
varsDef[k].name

应该是变量名
varsDef[k].toCSS()

不返回任何内容,因为它是一个变量-在CSS变量中不输出。

08-08 03:26