packages-ext/recoil-devtools/utils/webserver.js (30 lines of code) (raw):

/** * (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary. * * Recoil DevTools browser extension. * * @emails oncall+recoil * @format */ 'use strict'; const config = require('../webpack.config'); const env = require('./env'); const path = require('path'); const webpack = require('webpack'); const WebpackDevServer = require('webpack-dev-server'); var options = config.chromeExtensionBoilerplate || {}; var excludeEntriesToHotReload = options.notHotReload || []; for (var entryName in config.entry) { if (excludeEntriesToHotReload.indexOf(entryName) === -1) { config.entry[entryName] = [ 'webpack-dev-server/client?http://localhost:' + env.PORT, 'webpack/hot/dev-server', ].concat(config.entry[entryName]); } } config.plugins = [new webpack.HotModuleReplacementPlugin()].concat( config.plugins || [], ); delete config.chromeExtensionBoilerplate; var compiler = webpack(config); var server = new WebpackDevServer(compiler, { hot: true, contentBase: path.join(__dirname, '../build'), headers: { 'Access-Control-Allow-Origin': '*', }, disableHostCheck: true, }); server.listen(env.PORT);