GitHub - sass/node-sass-middleware: connect middleware extracted from node-sass (original) (raw)

node-sass-middleware

Connect/Express middleware for node-sass.

Main CI Workflow npm version Gitter chat

Install

npm install node-sass-middleware

Usage

Recompile .scss or .sass files automatically for connect and express based http servers.

Connect example

const connect = require('connect') const sassMiddleware = require('node-sass-middleware') const server = connect.createServer( sassMiddleware({ /* Options */ src: __dirname , dest: __dirname + '/public' , debug: true , outputStyle: 'compressed' , prefix: '/prefix' // Where prefix is at }), 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

Express example

const express = require('express'); const sassMiddleware = require('node-sass-middleware'); const path = require('path'); const app = express(); app.use(sassMiddleware({ /* Options */ src: __dirname, dest: path.join(__dirname, 'public'), debug: true, outputStyle: 'compressed', prefix: '/prefix' // Where prefix is at })); // Note: you must place sass-middleware before express.static or else it will // not work. app.use('/public', express.static(path.join(__dirname, 'public')));

Connect with other middleware example

const connect = require('connect'); const sassMiddleware = require('node-sass-middleware'); const postcssMiddleware = require('postcss-middleware'); const autoprefixer = require('autoprefixer'); const path = require('path'); const http = require('http'); const app = connect(); const destPath = __dirname + '/public'; app.use(sassMiddleware({ /* Options / src: __dirname , response: false , dest: destPath , outputStyle: 'extended' })); app.use(postcssMiddleware({ plugins: [ / Plugins / autoprefixer({ / Options */ }) ], src: function(req) { return path.join(destPath, req.url); } }));

http.createServer(app).listen(3000);

Options

Optional configurations

Express example with custom log function

const express = require('express'); const sassMiddleware = require('node-sass-middleware'); const path = require('path'); const winston = require('winston'); const app = 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')));

Contributors

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.

Building and Testing

git clone git@github.com:sass/node-sass-middleware cd node-sass-middleware

npm install npm test

Note on Patches/Pull Requests

Copyright (c) 2013+ Andrew Nesbitt. See LICENSE for details.