UNPKG

@talentsoft-opensource/widget-display-tool

Version:

Widget Simulator

51 lines (42 loc) 1.75 kB
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], }); }