kara-rc-web
Version:
kara项目react组件库
52 lines (42 loc) • 1.47 kB
JavaScript
/* 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}`)
})