Connect/Express middleware for node-sass.
npm install node-sass-middlewareRecompile .scss or .sass files automatically for connect and express based http servers.
constconnect=require('connect')constsassMiddleware=require('node-sass-middleware')constserver=connect.createServer(sassMiddleware({/* Options */src: __dirname,dest: __dirname+'/public',debug: true,outputStyle: 'compressed',prefix: '/prefix'// Where prefix is at <link rel="stylesheets" href="prefix/style.css"/>}),connect.static('/prefix',__dirname+'/public'));There is an example connect app here: https://github.com/andrew/node-sass-example
Heavily inspired by https://github.com/LearnBoost/stylus
constexpress=require('express');constsassMiddleware=require('node-sass-middleware');constpath=require('path');constapp=express();app.use(sassMiddleware({/* Options */src: __dirname,dest: path.join(__dirname,'public'),debug: true,outputStyle: 'compressed',prefix: '/prefix'// Where prefix is at <link rel="stylesheets" href="prefix/style.css"/>}));// Note: you must place sass-middleware *before* `express.static` or else it will// not work.app.use('/public',express.static(path.join(__dirname,'public')));constconnect=require('connect');constsassMiddleware=require('node-sass-middleware');constpostcssMiddleware=require('postcss-middleware');constautoprefixer=require('autoprefixer');constpath=require('path');consthttp=require('http');constapp=connect();constdestPath=__dirname+'/public';app.use(sassMiddleware({/* Options */src: __dirname,response: false,dest: destPath,outputStyle: 'extended'}));app.use(postcssMiddleware({plugins: [/* Plugins */autoprefixer({/* Options */})],src: function(req){returnpath.join(destPath,req.url);}}));http.createServer(app).listen(3000);src- (String) Source directory used to find.scssor.sassfiles.
beepOnError- Enable beep on error, false by default.debug-[true | false], false by default. Output debugging information.dest- (String) Destination directory used to output.cssfiles (when undefined defaults tosrc).error- A function to be called when something goes wrong.force-[true | false], false by default. Always re-compile.indentedSyntax-[true | false], false by default. If true compiles files with the.sassextension instead of.scssin thesrcdirectory.log-function(severity, key, val, message), used to log data instead of the defaultconsole.error. "severity" matches Winston severity levels.maxAge- MaxAge to be passed in Cache-Control header.prefix- (String) It will tell the sass middleware that any request file will always be prefixed with<prefix>and this prefix should be ignored.response-[true | false], true by default. To write output directly to response instead of to a file.root- (String) A base path for both source and destination directories.For full list of options from original node-sass project go here.
constexpress=require('express');constsassMiddleware=require('node-sass-middleware');constpath=require('path');constwinston=require('winston');constapp=express();winston.level='debug';app.use(sassMiddleware({/* Options */src: __dirname,dest: path.join(__dirname,'public'),debug: true,log: function(severity,key,value){winston.log(severity,'node-sass-middleware %s : %s',key,value);}}));// Note: you must place sass-middleware *before* `express.static` or else it will// not work.app.use(express.static(path.join(__dirname,'public')));We <3 our contributors! A special thanks to all those who have clocked in some dev time on this project, we really appreciate your hard work. You can find a full list of those people here.
git clone git@github.com:sass/node-sass-middleware
cd node-sass-middleware
npm install
npm test- Fork the project.
- Make your feature addition or bug fix.
- Add documentation if necessary.
- Add tests for it. This is important so I don't break it in a future version unintentionally.
- Send a pull request. Bonus points for topic branches.
Copyright (c) 2013+ Andrew Nesbitt. See LICENSE for details.