Skip to content

Instantly share code, notes, and snippets.

@Kalyse
Created August 28, 2012 11:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kalyse/3497304 to your computer and use it in GitHub Desktop.
Save Kalyse/3497304 to your computer and use it in GitHub Desktop.
Running Less
// $ node compile.js
var fs = require('fs'), // file system access
path = require('path'),
less = require('less'); // less processor
var options = {
compress: true,
optimization: 1,
silent: false
};
var allFiles = [].concat(
// fs.readdirSync("."),
fs.readdirSync("builds").map(function(fname){
return "builds/"+fname;
})
),
lessFiles = allFiles.filter(function(name){
return name && name != "variables.less" && /\.less$/.test(name);
});
lessFiles.forEach(function(fname){
console.log("=== " + fname);
fs.readFile(fname, 'utf-8', function(e, data){
if(e){
console.error("lessc: " + e.message);
process.exit(1);
}
new(less.Parser)({
paths: [path.dirname(fname)],
optimization: options.optimization,
filename: fname
}).parse(data, function(err, tree){
if(err){
less.writeError(err, options);
process.exit(1);
}else{
try{
var css = tree.toCSS({
compress: options.compress
}),
outputFname = fname.replace('.less', '.css');
var fd = fs.openSync(outputFname, "w");
fs.writeSync(fd, css, 0, "utf8");
}catch(e){
less.writeError(e, options);
process.exit(2);
}
}
});
});
});
console.log("Finished : ", lessFiles);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment