You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

41 line
895 B

  1. /**
  2. * Require Browsersync
  3. */
  4. var browserSync = require("browser-sync");
  5. /**
  6. * Run the middleware on files that contain .less
  7. */
  8. function lessMiddleware (req, res, next) {
  9. var parsed = require("url").parse(req.url);
  10. if (parsed.pathname.match(/\.less$/)) {
  11. return less(parsed.pathname).then(function (o) {
  12. res.setHeader('Content-Type', 'text/css');
  13. res.end(o.css);
  14. });
  15. }
  16. next();
  17. }
  18. /**
  19. * Compile less
  20. */
  21. function less(src) {
  22. var f = require('fs').readFileSync('app' + src).toString();
  23. return require('less').render(f);
  24. }
  25. /**
  26. * Run Browsersync with less middleware
  27. */
  28. browserSync({
  29. files: "app/css/*.less",
  30. server: "app",
  31. injectFileTypes: ["less"],
  32. /**
  33. * Catch all requests, if any are for .less files, recompile on the fly and
  34. * send back a CSS response
  35. */
  36. middleware: lessMiddleware
  37. });