diff --git a/lib/styleguide.js b/lib/styleguide.js index 7c11b1d2..a4fb3855 100644 --- a/lib/styleguide.js +++ b/lib/styleguide.js @@ -505,13 +505,16 @@ module.exports.server = function(options) { }; function startServer(options) { - // Ignore start server if we already have instance running + // Ignore start server if we already have instance running on the same port if (!serverInstance) { + serverInstance = {}; + } + if (!serverInstance[options.port]) { var port = options.port; - serverInstance = sgServer(options); - serverInstance.app.set('port', port); - serverInstance.server.listen(serverInstance.app.get('port'), function() { - console.log('Express server listening on port ' + serverInstance.server.address().port); + serverInstance[port] = sgServer(options); + serverInstance[port].app.set('port', port); + serverInstance[port].server.listen(serverInstance[port].app.get('port'), function() { + console.log('Express server listening on port ' + serverInstance[port].server.address().port); }).on('error', function(error) { if (error.code === 'EADDRINUSE') { console.error('Port:' + port + ' is already in use.'); @@ -519,7 +522,7 @@ function startServer(options) { } }); } - return serverInstance; + return serverInstance[options.port]; } module.exports.addSection = addSection;