Advertisement
DigitalMag

Less (based on gulp)

Feb 16th, 2020
444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const fs = require("fs");
  2. var accord         = require('accord');
  3. var assign         = require('object-assign');
  4. var path           = require('path');
  5. var replaceExt     = require('replace-ext');
  6.  
  7. const readlineSync = require('readline-sync');
  8.  
  9. var less           = accord.load('less');
  10.  
  11.  
  12.  
  13.  
  14. var options = {}
  15.  
  16. var _id = process.argv.indexOf("--src")+1;
  17.  
  18. if (_id) console.time('Time');
  19.  
  20. var opts = assign({}, {
  21.      compress: false,
  22.      paths: []
  23. }, options);
  24.  
  25.  
  26. var render = function (str, opts){
  27.    
  28.     less.render(str, opts).then(function(res) {
  29.        
  30.         var file = {}
  31.        
  32.         file.contents = Buffer.from(res.result);
  33.         file.path = replaceExt(opts.filename, '.css');
  34.  
  35.         return file;
  36.     }).then(function(file) {
  37.        
  38.         fs.writeFileSync(file.path, file.contents)
  39.        
  40.         console.log('compilled successfull')
  41.        
  42.         console.timeEnd('Time');
  43.        
  44.     }).catch(function(err) {
  45.        
  46.         // Convert the keys so PluginError can read them
  47.         err.lineNumber = err.line;
  48.         err.fileName = err.filename;
  49.  
  50.         // Add a better error message
  51.         err.message = err.message + ' in file ' + err.fileName + ' line no. ' + err.lineNumber;
  52.        
  53.         console.log(err.message)
  54.     });
  55.  
  56. }
  57.    
  58. var start = async function (){
  59.  
  60.     var flag = true;
  61.  
  62.     do{
  63.        
  64.         if (!_id){
  65.            
  66.             opts.filename = readlineSync.question('listening ');
  67.            
  68.             console.time('Time');
  69.            
  70.         }
  71.         else{
  72.            
  73.  
  74.             opts.filename = process.argv[_id];
  75.         }
  76.  
  77.         if (!fs.existsSync(opts.filename)) {
  78.             break;     
  79.         }
  80.  
  81.         var str = fs.readFileSync(opts.filename, "utf8");  
  82.        
  83.         await render(str, opts);
  84.        
  85.     }while(flag);
  86.  
  87.     console.log('exit');
  88.  
  89. }
  90.  
  91. start();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement