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);