dev.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const Webpack = require('webpack');
  2. const WebpackDevServer = require('webpack-dev-server');
  3. const webpackConfig = require('../config/webpack.config');
  4. const chalk = require('chalk');
  5. const {
  6. clearConsole,
  7. startedServerLogger,
  8. errorLogger,
  9. junglePort,
  10. } = require('./utils');
  11. const isInteractive = process.stdout.isTTY;
  12. const {host, port: defaultPort} = webpackConfig.devServer;
  13. function start(port) {
  14. const devServerOptions = {...webpackConfig.devServer, port};
  15. const compiler = Webpack(webpackConfig);
  16. const {host} = devServerOptions;
  17. const server = new WebpackDevServer(compiler, devServerOptions);
  18. console.log(chalk.hex('#065279')('Starting dev server...'));
  19. server.startCallback(function(err) {
  20. if (err)
  21. return errorLogger('Dev server start error');
  22. isInteractive && clearConsole();
  23. startedServerLogger(port, host);
  24. });
  25. }
  26. junglePort(host, defaultPort)
  27. .then(function(port) {
  28. if (!port)
  29. return;
  30. start(port);
  31. })
  32. .catch(function(err) {
  33. err && err.message && console.log(err.message);
  34. process.exit(1);
  35. });