/* * SonarQube * Copyright (C) 2009-2016 SonarSource SA * mailto:contact AT sonarsource DOT com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* eslint no-var: 0 */ /* eslint no-console: 0 */ /* eslint object-shorthand: 0 */ /* jscs:disable requireEnhancedObjectLiterals */ var url = require('url'); var express = require('express'); var proxy = require('express-http-proxy'); var webpack = require('webpack'); var config = require('./webpack.config.dev'); var app = express(); var compiler = webpack(config); var PORT = process.env.PORT || 8080; var API_HOST = process.env.API_HOST || 'http://localhost:9000'; app.use(require('webpack-dev-middleware')(compiler, { noInfo: true, publicPath: config.output.publicPath })); app.use(require('webpack-hot-middleware')(compiler)); app.all('*', proxy(API_HOST, { forwardPath: function (req) { return url.parse(req.url).path; } })); app.listen(PORT, 'localhost', function (err) { if (err) { console.log(err); return; } console.log('Listening at http://localhost:' + PORT); });