@talentsoft-opensource/widget-display-tool
Version:
Widget Simulator
51 lines (42 loc) • 1.75 kB
JavaScript
const webpack = require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const setupProxy = require('./dist/outproxy/proxy').setupProxy;
const defaultLoggerFactory = require('./dist/outproxy/logging').defaultLoggerFactory;
function startDevServer({ port, logger, bundleFile, mockFile, devServerConfigFactory }) {
const webpackConfig = devServerConfigFactory({ bundleFile, mockFile });
webpackConfig.mode = 'development'
const devServeroptions = {
contentBase: __dirname + "/build",
stats: "errors-only",
port,
host: 'localhost',
before: (app) => setupProxy(app, logger),
watchContentBase: true,
};
logger.info('starting webpack dev server');
WebpackDevServer.addDevServerEntrypoints(webpackConfig, devServeroptions);
const compiler = webpack(webpackConfig)
const server = new WebpackDevServer(compiler, devServeroptions);
server.listen(port, 'localhost', function (err) {
if (err) {
logger.error(err);
}
logger.info('WebpackDevServer listening at localhost:' + port);
});
}
function startDisplayTool({ port, loggerFactory, bundleFile, mockFile }) {
loggerFactory = loggerFactory || defaultLoggerFactory;
port = port || 5555;
if (!bundleFile || !mockFile) {
throw new Error("error: Missing parameter(s). You must provide paths to bundleFile & mockFile");
}
const devServerConfigFactory = require('./webpack.config.wdp');
startDevServer({ port, logger: loggerFactory("display-tool-webpack"), bundleFile, mockFile, devServerConfigFactory });
}
module.exports = startDisplayTool;
if (require.main === module) {
startDisplayTool({
bundleFile: process.argv[2],
mockFile: process.argv[3],
});
}