teleport/web/devServer.js

58 lines
1.7 KiB
JavaScript
Raw Normal View History

2016-02-22 23:36:40 +00:00
var WebpackDevServer = require("webpack-dev-server");
var webpackConfig = require('./webpack.config.js');
var express = require('express');
var webpack = require('webpack');
2016-03-01 00:05:55 +00:00
var proxy = require('http-proxy').createProxyServer();
2016-02-22 23:36:40 +00:00
2016-03-01 00:05:55 +00:00
var PROXY_TARGET = '0.0.0.0:3080/';
2016-02-22 23:36:40 +00:00
var ROOT = '/web';
var PORT = '8080';
var WEBPACK_CLIENT_ENTRY = 'webpack-dev-server/client?https://localhost:' + PORT;
2016-02-22 23:36:40 +00:00
var WEBPACK_SRV_ENTRY = 'webpack/hot/dev-server';
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
2016-02-22 23:36:40 +00:00
webpackConfig.plugins.unshift(new webpack.HotModuleReplacementPlugin());
webpackConfig.entry.app.unshift(WEBPACK_CLIENT_ENTRY, WEBPACK_SRV_ENTRY);
webpackConfig.entry.styles.unshift(WEBPACK_CLIENT_ENTRY, WEBPACK_SRV_ENTRY);
var compiler = webpack(webpackConfig);
2016-03-01 00:05:55 +00:00
2016-02-22 23:36:40 +00:00
var server = new WebpackDevServer(compiler, {
proxy: {
2016-03-01 00:05:55 +00:00
'/v1/webapi/*': {
target: 'https://' + PROXY_TARGET
2016-02-26 23:41:16 +00:00
}
2016-02-22 23:36:40 +00:00
},
publicPath: ROOT +'/app',
hot: true,
https: true,
secure: false,
inline: true,
2016-03-01 00:05:55 +00:00
headers: { 'X-Custom-Header': 'yes' },
stats: 'errors-only'
//stats: { colors: true },
2016-03-01 00:05:55 +00:00
});
// tell webpack dev server to proxy below sockets requests to actual server
server.listeningApp.on('upgrade', function(req, socket) {
if (req.url.match('/v1/webapi/sites')) {
console.log('proxying ws', req.url);
proxy.ws(req, socket, {
target: 'wss://' + PROXY_TARGET,
secure: false
});
2016-03-01 00:05:55 +00:00
}
2016-02-22 23:36:40 +00:00
});
server.app.use(ROOT, express.static(__dirname + "//dist"));
server.app.get(ROOT +'/*', function (req, res) {
res.sendfile(__dirname + "//dist//index.html");
});
module.exports = function(){
server.listen(PORT, "localhost", function() {
console.log('Dev Server is up and running: http://location:' + PORT);
});
}