compile.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // load libraries
  2. var fs = require("fs");
  3. var path = require("path");
  4. var less = require("less");
  5. // collect files
  6. var folders = ["../android", "../blackberry", "../iphone", "../custom"];
  7. var files = [];
  8. folders.forEach(function(folder){
  9. files = files.concat(fs.readdirSync(folder).map(function(file){
  10. return folder + "/" + file;
  11. }));
  12. });
  13. files = files.filter(function(file){
  14. return file && /\.less$/.test(file) && !/variables\.less$/.test(file);
  15. });
  16. // compile files
  17. files.forEach(function(file){
  18. console.log("compiling " + file);
  19. fs.readFile(file, "utf-8", function(error, data){
  20. if(error){
  21. console.error(error.message);
  22. process.exit(1);
  23. }
  24. var parser = new(less.Parser)({paths: [path.dirname(file)], filename: file, optimization: 1});
  25. parser.parse(data, function(error, tree){
  26. if(error){
  27. less.writeError(error);
  28. process.exit(1);
  29. }
  30. try{
  31. var css = tree.toCSS({compress: false});
  32. var fd = fs.openSync(file.replace(".less", ".css"), "w");
  33. fs.writeSync(fd, css, 0, "utf-8");
  34. }catch(error){
  35. less.writeError(error);
  36. process.exit(2);
  37. }
  38. });
  39. });
  40. });