What we want is when the server side Node.js files have been changed, we want to use browserify to bundle all file and output just one file and later to show the console result in the browser.

 

For this, frist we need auto-watch: grunt-contrib-watch:

npm install grunt-contrib-watch --save-dev

 

Then we also install grunt-browserify:

npm install grunt-browserify --save-dev

 

Create 'GruntFile.js' and put in:

module.exports = function(grunt) {

    grunt.initConfig({
        browserify: {
            'server-build/app.js': ['server/**/*.js']
        },
        watch: {
            files: ["server/**/*.js"],
            tasks: ['browserify']
        }
    });

    grunt.loadNpmTasks('grunt-browserify');
    grunt.loadNpmTasks('grunt-contrib-watch');
}

What it says is that: 

  1. Watch all the files under server dir, including nested dir and theirs files.

  2. Once those files have been modified, run browserify task.

  3. The browserify task says that: bundle all the files in server dir and output to server-build dir's app.js file.

 

Then you can run:

grunt watch

 

Test file:

server/app.js:

var test = require('./test');
console.log(test());

server/test.js:

module.exports = function(){
    return "Hello World";
}

 

More: 

http://codeofrob.com/entries/grunt+browserify+npm+application=success.html

https://github.com/jmreidy/grunt-browserify