webserver.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Do this as the first thing so that any code reading it knows the right env.
  2. process.env.BABEL_ENV = 'development';
  3. process.env.NODE_ENV = 'development';
  4. process.env.ASSET_PATH = '/';
  5. var WebpackDevServer = require('webpack-dev-server'),
  6. webpack = require('webpack'),
  7. config = require('./webpack.config'),
  8. env = require('./env'),
  9. path = require('path');
  10. var options = config.chromeExtensionBoilerplate || {};
  11. var excludeEntriesToHotReload = options.notHotReload || [];
  12. for (var entryName in config.entry) {
  13. if (excludeEntriesToHotReload.indexOf(entryName) === -1) {
  14. config.entry[entryName] = [
  15. 'webpack/hot/dev-server',
  16. `webpack-dev-server/client?hot=true&hostname=localhost&port=${env.PORT}`,
  17. ].concat(config.entry[entryName]);
  18. }
  19. }
  20. delete config.chromeExtensionBoilerplate;
  21. var compiler = webpack(config);
  22. var server = new WebpackDevServer(
  23. {
  24. https: true,
  25. hot: true,
  26. liveReload: false,
  27. client: {
  28. webSocketTransport: 'sockjs',
  29. },
  30. webSocketServer: 'sockjs',
  31. host: 'localhost',
  32. port: env.PORT,
  33. static: {
  34. directory: path.join(__dirname, '../build'),
  35. },
  36. devMiddleware: {
  37. publicPath: `http://localhost:${env.PORT}/`,
  38. writeToDisk: true,
  39. },
  40. headers: {
  41. 'Access-Control-Allow-Origin': '*',
  42. },
  43. allowedHosts: 'all',
  44. },
  45. compiler
  46. );
  47. (async () => {
  48. await server.start();
  49. })();