Connect/express middleware for serving apps to a browser with browserify

Connect/express middelware for serving front-end applications with browserify. Install via npm:

npm install connect-browserify

Basic usage is as follows:

var express = require('express');
var browserify = require('connect-browserify');
app = express();
app.use('/js/app.js', browserify({
  entry: 'src/app.js',            // entry for your application 
  requirements: ['src/views.js'], // additional modules to require, will 
                                  // be exposed under id relative to 
                                  // entry, e.g. './views' in current 
                                  // example 
  transforms: ['coffeeify'],        // transforms to use 
  bundlefunction(bundle) {      // optional, configure browserify instance 
    // configure bundle 
    return bundle
  pipesfunction(stream) {       // optional, apply post-bundle-transforms 
    return stream                 // Receives the browserify bundle stream 
      .pipe(uglifyStream);        // Must return another stream 
  onErrorfunction(err) {        // optional, called if errors occur during the 
    console.warn(err);            // build process. If not set, errors are only 
  },                              // available via the middleware response 
  contentType: 'text/javascript', // optional, Content-type header to use, by 
                                  // default this equals to 'application/javascript' 
  extensions: ['.js', '.coffee'], // to consider non-js files as 
                                  // CommonJS modules 
  debug: true                     // see browserify docs, other options are 

This middleware will start watching directory of entry file for changes and rebuild bundle accordingly and caching the result for future requests.

You should never use this middleware in production — use nginx for serving pre-built bundles to a browser.