1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import Webpack from 'webpack';
- import WebpackDevServer from 'webpack-dev-server';
- import webpackConfig from '../config/webpack.config.ts';
- import chalk from 'chalk';
- import {
- clearConsole,
- startedServerLogger,
- errorLogger,
- junglePort,
- } from './utils.ts';
- const isInteractive = process.stdout.isTTY;
- const {host, port: defaultPort} = webpackConfig.devServer!;
- function start(port: number) {
- const devServerOptions = {...webpackConfig.devServer, port};
- const compiler = Webpack(webpackConfig as any);
- const {host} = devServerOptions;
- const server = new WebpackDevServer(compiler, devServerOptions);
- console.log(chalk.hex('#065279')('Starting dev server...'));
- server.startCallback(function(err) {
- if (err) {
- return errorLogger('Dev server start error');
- }
- isInteractive && clearConsole();
- startedServerLogger(port, host);
- });
- }
- junglePort(host!, defaultPort as number)
- .then(function(port: any) {
- if (!port) {
- return;
- }
- start(port);
- })
- .catch(function(err: Error) {
- err && err.message && console.log(err.message);
- process.exit(1);
- });
|