UNPKG

jarvis-react

Version:

React脚手架及命令行工具合集

59 lines (58 loc) 2.32 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ora_1 = __importDefault(require("ora")); const webpack_1 = __importDefault(require("webpack")); const webpack_dev_server_1 = __importDefault(require("webpack-dev-server")); const webpack_2 = require("../config/webpack"); const devServer_1 = require("../config/devServer"); const function_1 = require("../util/function"); function start() { function_1.logger.cyan('start development server...'); process.env.NODE_ENV = 'development'; const spinner = ora_1.default(); const userConfig = function_1.getUserConfig(); const options = { ...userConfig, cwd: process.cwd(), isDevelopment: true, isProduction: false, port: 3000, }; const webpackConfig = webpack_2.getWebpackConfig(options); const serverConfig = devServer_1.getServerConfig(options); const compiler = webpack_1.default(webpackConfig); compiler.hooks.invalid.tap('invalid', () => { spinner.start('start compile...'); }); compiler.hooks.done.tap('done', (stats) => { const info = stats.toJson({ all: false, errors: true, warnings: true, timings: true }); if (Array.isArray(info.errors) && info.errors.length > 0) { spinner.fail('fail to compile'); info.errors.forEach((item) => { console.error(item.moduleName); console.error(item.message); }); return; } if (Array.isArray(info.warnings) && info.warnings.length > 0) { spinner.warn('compile with warnings'); info.warnings.forEach((item) => { console.error(item.moduleName); console.error(item.message); }); } spinner.succeed(`success to compile with ${function_1.convertTime(info.time)} \n`); }); // @ts-ignore const server = new webpack_dev_server_1.default(compiler, serverConfig); server.listen(options.port, 'localhost', (err) => { if (err) { function_1.logger.error('compile with errors'); throw err; } }); } module.exports = start;