transform
v1.1.2
Published
The ultimate transformation/build/compilation middleware/command line/etc. system for node.js
Downloads
8,308
Readme
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');
//It's OK to have multiple formats that all result in the same extension
//only one will be active per file though
transform.add('.less', '.css', 'less');
transform.add('.styl', '.css', 'stylus');
transform.add('.sass', '.css', 'sass');
//these files will first be transformed by coffee-script and then by
//uglify-js if enabled bellow.
transform.add('.coffee', '.js', 'coffee-script', {bare: true});
//we can easilly set it up to only minify in production
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