12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // 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'); // 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);
- }
- }
- });
- });
- });
|