UNPKG

kara-rc-web

Version:

kara项目react组件库

52 lines (42 loc) 1.47 kB
/* eslint-disable import/no-extraneous-dependencies */ const express = require('express') const path = require('path') const webpack = require('webpack') const webpackDevConfig = require('../webpack.dev.config.js') const openBrowser = require('react-dev-utils/openBrowser') const app = express() // 浏览器自动刷新 Object.keys(webpackDevConfig.entry).forEach((name) => { webpackDevConfig.entry[name] = [ 'eventsource-polyfill', 'webpack-hot-middleware/client?noInfo=true&reload=true', 'webpack/hot/dev-server', ].concat(webpackDevConfig.entry[name]) }) const compiler = webpack(webpackDevConfig) app.use(require('webpack-dev-middleware')(compiler, { publicPath: webpackDevConfig.output.publicPath, noInfo: true, stats: { colors: true }, })) const hotMiddleware = require('webpack-hot-middleware')(compiler) app.use(hotMiddleware) // 在你应用 JavaScript 文件中包含了一个 script 标签的 index.html 中处理任何一个 route app.use('*', (req, res, next) => { const filename = path.resolve(compiler.outputPath, 'index.html') compiler.outputFileSystem.readFile(filename, (err, result) => { if (err) { return next(err) } res.set('content-type', 'text/html') res.send(result) res.end() return next() }) }) const port = '8148' app.listen(port, () => { // eslint-disable-next-line console.info(`开发环境web应用运行于端口:${port}`) openBrowser(`http://localhost:${port}`) })