Probably you’re already using grunt to serve your local frontend code. Everything is fine, but if you’re developing your backend with something different than JavaScript (Being a Java developer I heard that might happen), you will have problems accessing this backend while running grunt server
.
With grunt-connect-proxy there exists a grunt module to help you out. It basically delegates requests that match a given URL to a different backend of your choice. Unfortunately I found it rather difficult to configure, if you are unaware of the connect middleware concept.
Basically you just need to add two things to your Gruntfile.js
file:
Firstly add the connect server configuration to your config JSON inside of grunt.initConfig
. This example delegates all requests to http://localhost:8000/services
to http://localhost:8090/services
- keep in mind the grunt server is running on port 8000 and the backend on port 8090:
connect: {
site1: {
options: {
port: 8000,
base: '.',
keepalive: true,
middleware: function (connect, options, middlewares) {
middlewares.unshift(require('grunt-connect-proxy/lib/utils').proxyRequest);
return middlewares;
}
},
proxies: [
{
context: '/services',
host: 'localhost',
port: 8090,
https: false,
xforward: false
}
]
}
}
Secondly register your grunt server task:
grunt.registerTask('server', function (target) {
grunt.task.run([
'configureProxies:site1',
'connect:site1'
]);
});
then you can call your grunt server with the configured proxy via :
grunt server
from the command line.
Enjoy!