dijit
Version:
Dijit provides a complete collection of user interface controls based on Dojo, giving you the power to create web applications that are highly optimized for usability, performance, internationalization, accessibility, but above all deliver an incredible u
53 lines (47 loc) • 1.41 kB
JavaScript
// Script to process all the less files and convert them to CSS files
// Run from themes/dijit/claro like:
//
// $ node compile.js
var fs = require('fs'), // file system access
path = require('path'), // get directory from file name
less = require('../../../util/less/lib/less'); // less processor
var options = {
compress: false,
optimization: 1,
silent: false
};
var allFiles = [].concat(
fs.readdirSync("."),
fs.readdirSync("form").map(function(fname){ return "form/"+fname; }),
fs.readdirSync("layout").map(function(fname){ return "layout/"+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);
}
}
});
});
});