Github user Vecerek had a similar need. less.parse
kann mit einem Rückruf verwendet werden, um den AST zuzugreifen:
... Ich bin hier den eigentlichen Code setzen, dass den AST bekommen funktioniert, wird im Fall, dass jemand die gleiche Hürde konfrontiert und über diese kommt Problem.
var less = require('less')
, fs = require('fs')
, path = require('path');
var src = './test_import.less'; //some less source file
var result = less.parse(fs.readFileSync(src).toString(), {
filename: path.resolve(src)
}, function(e, tree) {
console.log(JSON.stringify(tree, null, 2));
});
Dieser Code-Schnipsel angepasst werden kann vernünftigerweise ein Versprechen Struktur zu verwenden, die ich mehr nützlich finden:
function lessAST(filename, options) {
options = options || {};
options.filename = path.resolve(filename);
return new Promise(function (res, rej) {
less.parse(fs.readFileSync(filename).toString(), options, function (e, tree) {
if (e) {
rej(e);
} else {
res(tree);
}
});
});
}
Beispiel Nutzung:
lessAST('styles.less', {
...options...
}).then(function (tree) {
...do stuff with the AST...
});