1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /* eslint-disable no-console */
-
- const path = require('path');
- const pkg = require('./../package.json');
- const express = require('express');
- const webpack = require('webpack');
- const detect = require('detect-port');
- const chalk = require('chalk');
- const open = require('open');
- const webpackDevMiddleware = require('webpack-dev-middleware');
- const webpackHotMiddleware = require('webpack-hot-middleware');
- const generateDemoConfig = require('./../demo/generateConfig');
- const generateComponentConfig = require('./../generateConfig');
-
- const app = express();
- const compiler = webpack([
- generateComponentConfig({
- // Build the component library into node_modules
- // so we need not do a symlink for development.
- outputPath: path.resolve(__dirname, '../demo/node_modules/' + pkg.name + '/dist')
- }),
- generateDemoConfig({
- hot: true,
- optimize: false,
- extractCss: false
- })
- ]);
- const [componentCompiler, demoCompiler] = compiler.compilers;
-
- componentCompiler.watch({}, function(err) {
- if (err) {
- throw err;
- }
- });
- app.use(webpackDevMiddleware(demoCompiler));
- app.use(webpackHotMiddleware(demoCompiler));
-
- const run = (port) => {
- detect(port, (err, _port) => {
- if (port === _port) {
- app.listen(_port, () => {
- const url = `http://localhost:${port}`;
- console.log(chalk.cyan(`Server running at ${url}.`));
- open(url);
- });
- } else {
- run(port + 1);
- }
- });
- };
-
- run(6060);
|