gdumitrescu
8/4/2013 - 10:08 AM

Grunt Connect Server with Proxies

Grunt Connect Server with Proxies

var proxySnippet = require('grunt-connect-proxy/lib/utils').proxyRequest;

module.exports = function(grunt) {
    grunt.initConfig({
        watch: {
            all: {
                files: ['Gruntfile.js']
            }
        },
        connect: {
            'static': {
        		options: {
        			hostname: 'localhost',
        			port: 8001
        		}
        	},
        	server: {
        		options: {
        			hostname: 'localhost',
        			port: 8000,
        			middleware: function(connect) {
        				return [proxySnippet];
        			}
        		},
        		proxies: [
        			{
        				context: '/svc',
        				host: 'myserviceshost',
        				port: 8080				
        			},
        			{
        				context: '/api',
        				host: 'myapihost',
        				port: 9080
        			},
        			{
        				context: '/',
        				host: 'localhost',
        				port: 8001
        			}
        		]
        	},
            fakeServer: {
        		options: {
        			hostname: 'localhost',
        			port: 8000,
        			middleware: function(connect) {
        				return [proxySnippet];
        			}
        		},
        		proxies: [
        			{
        				context: '/svc',
        				host: 'localhost',
        				port: 8080				
        			},
        			{
        				context: '/api',
        				host: 'localhost',
        				port: 9080
        			},
        			{
        				context: '/',
        				host: 'localhost',
        				port: 8001
        			}
        		]
        	}
        }
    });
    
    grunt.loadNpmTask('grunt-contrib-watch');
    grunt.loadNpmTask('grunt-contrib-connect');
    grunt.loadNpmTask('grunt-connect-proxy');
    
    grunt.registerTask('server', ['connect:static', 'configureProxies:server', 'connect:server', 'watch']);
    grunt.registerTask('fakeServer', ['connect:static', 'configureProxies:fakeServer', 'connect:fakeServer', 'watch']);
};