transform
The ultimate transformation/build/compilation middleware/command line/etc. system for node.js
Installation
$ npm install transform
Basic Usage
The following example compiles coffe-script to JavaScript files and minifies all JavaScript files (including those generated by coffee-script in the previous step). To run this sample you will need to also install coffee-script and uglify-js (npm install coffee-script uglify-js)
var express = require('express');
var app = express();
var path = require('path');
var transform = require('transform');
app.use(transform(path.join(__dirname, 'source'))
.using(function (transform) {
transform.add('.jade', '.html', 'jade');
transform.add('.less', '.css', 'less');
transform.add('.styl', '.css', 'stylus');
transform.add('.sass', '.css', 'sass');
transform.add('.coffee', '.js', 'coffee-script', {bare: true});
if (process.env.NODE_ENV && process.env.NODE_ENV != 'development')
transform.add('.js', '.js', 'uglify');
})
.to(path.join(__dirname, 'destination')));
app.listen(3000);
The code for .to is:
function (destination) {
if (process.env.NODE_ENV && process.env.NODE_ENV != 'development') {
return this.statically(destination);
} else {
return this.dynamically();
}
}
Calling .statically(destination) compiles the files to physical files in destination and then serves them using connect's static middleware.
Calling .dynamically() returns middleware that compiles each file every time they are requested.
License
MIT