dev.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  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 {clearConsole, startedServerLogger, errorLogger, junglePort} = require('./utils');
  6. const isInteractive = process.stdout.isTTY;
  7. const {host, port: defaultPort} = webpackConfig.devServer;
  8. function start(port) {
  9. const devServerOptions = {...webpackConfig.devServer, port};
  10. const compiler = Webpack(webpackConfig);
  11. const {host} = devServerOptions;
  12. const server = new WebpackDevServer(compiler, devServerOptions);
  13. console.log(chalk.hex('#065279')('Starting dev server...'));
  14. server.startCallback(function (err) {
  15. if (err) return errorLogger('Dev server start error');
  16. isInteractive && clearConsole();
  17. startedServerLogger(port, host);
  18. });
  19. }
  20. junglePort(host, defaultPort)
  21. .then(function (port) {
  22. if (!port) return;
  23. start(port);
  24. })
  25. .catch(function (err) {
  26. err && err.message && console.log(err.message);
  27. process.exit(1);
  28. });