UNPKG

1.46 kBJavaScriptView Raw
1const fs = require('fs');
2const path = require('path');
3
4const Handlebars = require('handlebars');
5const open = require('open');
6const express = require('express');
7const cors = require('cors');
8const webpackDevMiddleware = require('webpack-dev-middleware');
9const webpack = require('webpack');
10const log = require('fancy-log');
11
12
13
14const taskDev = function ({ webpackConfig, demo, port, devCors, demoEntryList }) {
15
16 const dev = function () {
17
18 const config = webpackConfig;
19 const app = express();
20 const compiler = webpack(config);
21 if (devCors) {
22 app.use(cors());
23 }
24
25 app.get('/', function (req, res) {
26 const templateStr = fs.readFileSync(
27 path.join(__dirname, '../space/demo-list.handlebars'),
28 'utf-8'
29 );
30 const template = Handlebars.compile(templateStr);
31
32 const data = {
33 demos: demoEntryList.map(item => {
34 return { name: item }
35 })
36 }
37 res.send(template(data));
38 });
39
40 app.use(express.static(demo));
41
42 app.use(webpackDevMiddleware(compiler, {
43 publicPath: config.output.publicPath
44 }));
45
46 app.listen(port, function () {
47 log('[webpack-dev-server]', `started at port ${port}`);
48 });
49
50 open(`http://127.0.0.1:${port}/`);
51 }
52 return dev;
53}
54
55module.exports = taskDev;
\No newline at end of file