@anansi/webpack-config
Version:
Production ready webpack for React
38 lines (37 loc) • 5.35 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
exports.__esModule = true;
exports.default = void 0;
var _errorOverlayMiddleware = _interopRequireDefault(require("react-dev-utils/errorOverlayMiddleware"));
class ErrorOverlayPlugin {
apply(compiler) {
const className = this.constructor.name;
if (compiler.options.mode !== 'development') return;
const devServerEnabled = !!compiler.options.devServer;
const sockOptions = {};
if (devServerEnabled) {
sockOptions.sockHost = compiler.options.devServer?.client?.webSocketURL?.hostname;
sockOptions.sockPath = compiler.options.devServer?.client?.webSocketURL?.pathname;
sockOptions.sockPort = compiler.options.devServer?.client?.webSocketURL?.port;
}
compiler.hooks.afterResolvers.tap(className, ({
options
}) => {
if (devServerEnabled) {
const originalBefore = options.devServer.setupMiddlewares;
options.devServer.setupMiddlewares = (middlewares, devServer) => {
if (!devServer) {
throw new Error('webpack-dev-server is not defined');
}
if (originalBefore) {
originalBefore(devServer);
}
middlewares.unshift((0, _errorOverlayMiddleware.default)());
return middlewares;
};
}
});
}
}
exports.default = ErrorOverlayPlugin;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXJyb3JPdmVybGF5TWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiRXJyb3JPdmVybGF5UGx1Z2luIiwiYXBwbHkiLCJjb21waWxlciIsImNsYXNzTmFtZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm9wdGlvbnMiLCJtb2RlIiwiZGV2U2VydmVyRW5hYmxlZCIsImRldlNlcnZlciIsInNvY2tPcHRpb25zIiwic29ja0hvc3QiLCJjbGllbnQiLCJ3ZWJTb2NrZXRVUkwiLCJob3N0bmFtZSIsInNvY2tQYXRoIiwicGF0aG5hbWUiLCJzb2NrUG9ydCIsInBvcnQiLCJob29rcyIsImFmdGVyUmVzb2x2ZXJzIiwidGFwIiwib3JpZ2luYWxCZWZvcmUiLCJzZXR1cE1pZGRsZXdhcmVzIiwibWlkZGxld2FyZXMiLCJFcnJvciIsInVuc2hpZnQiLCJlcnJvck92ZXJsYXlNaWRkbGV3YXJlIiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcGx1Z2lucy9FcnJvck92ZXJsYXlQbHVnaW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGVycm9yT3ZlcmxheU1pZGRsZXdhcmUgZnJvbSAncmVhY3QtZGV2LXV0aWxzL2Vycm9yT3ZlcmxheU1pZGRsZXdhcmUnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFcnJvck92ZXJsYXlQbHVnaW4ge1xuICBhcHBseShjb21waWxlcikge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IHRoaXMuY29uc3RydWN0b3IubmFtZTtcblxuICAgIGlmIChjb21waWxlci5vcHRpb25zLm1vZGUgIT09ICdkZXZlbG9wbWVudCcpIHJldHVybjtcblxuICAgIGNvbnN0IGRldlNlcnZlckVuYWJsZWQgPSAhIWNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyO1xuICAgIGNvbnN0IHNvY2tPcHRpb25zID0ge307XG4gICAgaWYgKGRldlNlcnZlckVuYWJsZWQpIHtcbiAgICAgIHNvY2tPcHRpb25zLnNvY2tIb3N0ID1cbiAgICAgICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXI/LmNsaWVudD8ud2ViU29ja2V0VVJMPy5ob3N0bmFtZTtcbiAgICAgIHNvY2tPcHRpb25zLnNvY2tQYXRoID1cbiAgICAgICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXI/LmNsaWVudD8ud2ViU29ja2V0VVJMPy5wYXRobmFtZTtcbiAgICAgIHNvY2tPcHRpb25zLnNvY2tQb3J0ID1cbiAgICAgICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXI/LmNsaWVudD8ud2ViU29ja2V0VVJMPy5wb3J0O1xuICAgIH1cblxuICAgIGNvbXBpbGVyLmhvb2tzLmFmdGVyUmVzb2x2ZXJzLnRhcChjbGFzc05hbWUsICh7IG9wdGlvbnMgfSkgPT4ge1xuICAgICAgaWYgKGRldlNlcnZlckVuYWJsZWQpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxCZWZvcmUgPSBvcHRpb25zLmRldlNlcnZlci5zZXR1cE1pZGRsZXdhcmVzO1xuICAgICAgICBvcHRpb25zLmRldlNlcnZlci5zZXR1cE1pZGRsZXdhcmVzID0gKG1pZGRsZXdhcmVzLCBkZXZTZXJ2ZXIpID0+IHtcbiAgICAgICAgICBpZiAoIWRldlNlcnZlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZWJwYWNrLWRldi1zZXJ2ZXIgaXMgbm90IGRlZmluZWQnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAob3JpZ2luYWxCZWZvcmUpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsQmVmb3JlKGRldlNlcnZlcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWlkZGxld2FyZXMudW5zaGlmdChlcnJvck92ZXJsYXlNaWRkbGV3YXJlKCkpO1xuXG4gICAgICAgICAgcmV0dXJuIG1pZGRsZXdhcmVzO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBQUEsdUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVlLE1BQU1DLGtCQUFrQixDQUFDO0VBQ3RDQyxLQUFLQSxDQUFDQyxRQUFRLEVBQUU7SUFDZCxNQUFNQyxTQUFTLEdBQUcsSUFBSSxDQUFDQyxXQUFXLENBQUNDLElBQUk7SUFFdkMsSUFBSUgsUUFBUSxDQUFDSSxPQUFPLENBQUNDLElBQUksS0FBSyxhQUFhLEVBQUU7SUFFN0MsTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDTixRQUFRLENBQUNJLE9BQU8sQ0FBQ0csU0FBUztJQUNyRCxNQUFNQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLElBQUlGLGdCQUFnQixFQUFFO01BQ3BCRSxXQUFXLENBQUNDLFFBQVEsR0FDbEJULFFBQVEsQ0FBQ0ksT0FBTyxDQUFDRyxTQUFTLEVBQUVHLE1BQU0sRUFBRUMsWUFBWSxFQUFFQyxRQUFRO01BQzVESixXQUFXLENBQUNLLFFBQVEsR0FDbEJiLFFBQVEsQ0FBQ0ksT0FBTyxDQUFDRyxTQUFTLEVBQUVHLE1BQU0sRUFBRUMsWUFBWSxFQUFFRyxRQUFRO01BQzVETixXQUFXLENBQUNPLFFBQVEsR0FDbEJmLFFBQVEsQ0FBQ0ksT0FBTyxDQUFDRyxTQUFTLEVBQUVHLE1BQU0sRUFBRUMsWUFBWSxFQUFFSyxJQUFJO0lBQzFEO0lBRUFoQixRQUFRLENBQUNpQixLQUFLLENBQUNDLGNBQWMsQ0FBQ0MsR0FBRyxDQUFDbEIsU0FBUyxFQUFFLENBQUM7TUFBRUc7SUFBUSxDQUFDLEtBQUs7TUFDNUQsSUFBSUUsZ0JBQWdCLEVBQUU7UUFDcEIsTUFBTWMsY0FBYyxHQUFHaEIsT0FBTyxDQUFDRyxTQUFTLENBQUNjLGdCQUFnQjtRQUN6RGpCLE9BQU8sQ0FBQ0csU0FBUyxDQUFDYyxnQkFBZ0IsR0FBRyxDQUFDQyxXQUFXLEVBQUVmLFNBQVMsS0FBSztVQUMvRCxJQUFJLENBQUNBLFNBQVMsRUFBRTtZQUNkLE1BQU0sSUFBSWdCLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQztVQUN0RDtVQUVBLElBQUlILGNBQWMsRUFBRTtZQUNsQkEsY0FBYyxDQUFDYixTQUFTLENBQUM7VUFDM0I7VUFFQWUsV0FBVyxDQUFDRSxPQUFPLENBQUMsSUFBQUMsK0JBQXNCLEVBQUMsQ0FBQyxDQUFDO1VBRTdDLE9BQU9ILFdBQVc7UUFDcEIsQ0FBQztNQUNIO0lBQ0YsQ0FBQyxDQUFDO0VBQ0o7QUFDRjtBQUFDSSxPQUFBLENBQUFDLE9BQUEsR0FBQTdCLGtCQUFBIiwiaWdub3JlTGlzdCI6W119