Code Monkey home page Code Monkey logo

less.js-middleware's Introduction

The less-middleware has recently been updated to version 1.0.3.

If you are seeing an error similar to TypeError: Arguments to path.join must be strings please read the migration guide to update your code.

This middleware was created to allow processing of Less files for Connect JS framework and by extension the Express JS framework.

Build Status

Installation

npm install less-middleware --save

Usage

lessMiddleware(source, [{options}])

Express

var lessMiddleware = require('less-middleware');

var app = express();
app.use(lessMiddleware(__dirname + '/public'));
app.use(express.static(__dirname + '/public'));

options

The following options can be used to control the behavior of the middleware:

Option Description Default
compiler Options for the less compiler. See the "compiler Options" section below.
debug Show more verbose logging? false
dest Destination directory to output the compiled .css files. Same directory as less source files.
force Always re-compile less files on each request. false
once Only recompile once after each server restart. Useful for reducing disk i/o on production. false
parser Options for the less parser. See the "parser Options" section below.
pathRoot Common root of the source and destination. It is prepended to both the source and destination before being used. null
postprocess Object containing functions relavent to preprocessing data.
postprocess.css Function that modifies the compiled css output before being stored. function(css, req){...}
preprocess Object containing functions relavent to preprocessing data.
preprocess.less Function that modifies the raw less output before being parsed and compiled. function(src, req){...}
preprocess.path Function that modifies the less pathname before being loaded from the filesystem. function(pathname, req){...}
storeCss Function that is in charge of storing the css in the filesystem. function(pathname, css, next){...}

compiler Options

The options.compiler is passed directly into the less parser with minimal defaults or changes by the middleware.

The following are the defaults used by the middleware:

Option Default
compress auto
sourceMap false
yuicompress false

parser Options

The options.parser is passed directly into the less parser with minimal defaults or changes by the middleware.

The following are the defaults used by the middleware:

Option Default
dumpLineNumbers 0
paths [source]
optimization 0
relativeUrls false

Examples

Common examples of using the Less middleware are available in the wiki.

Troubleshooting

My less never recompiles, even when I use {force: true}!

Make sure you're declaring less-middleware before your static middleware, if you're using the same directory, e.g. (with express):

var lessMiddleware = require('less-middleware');

var app = express();
app.use(lessMiddleware(__dirname + '/public'));
app.use(express.static(__dirname + '/public'));

not

var lessMiddleware = require('less-middleware');

var app = express();
app.use(express.static(__dirname + '/public'));
app.use(lessMiddleware(__dirname + '/public'));

IIS

If you are hosting your app on IIS you will have to modify your web.config file in order to allow NodeJS to serve your CSS static files. IIS will cache your CSS files, bypassing NodeJS static file serving, which in turn does not allow the middleware to recompile your LESS files.

less.js-middleware's People

Contributors

0b10011 avatar amirrajan avatar andreineculau avatar ashtuchkin avatar boz avatar courajs avatar daemonl avatar danielhusar avatar edy avatar emecell avatar grahamb avatar hazukishiro avatar hdanak avatar jbuck avatar johngeorgewright avatar k88hudson avatar kaareal avatar kamikat avatar kersten avatar meatcar avatar myhere avatar namuol avatar nchase avatar nyteshade avatar rush avatar taxilian avatar zoramite avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.