1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

fix: wait lensProxy.listen() to obtain lensProxy.port for webpack-dev-server

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2022-02-08 15:30:03 +02:00
parent 2ef9861d10
commit 29c75e18c6
3 changed files with 10 additions and 17 deletions

View File

@ -10,7 +10,7 @@ import * as Mobx from "mobx";
import * as LensExtensionsCommonApi from "../extensions/common-api"; import * as LensExtensionsCommonApi from "../extensions/common-api";
import * as LensExtensionsMainApi from "../extensions/main-api"; import * as LensExtensionsMainApi from "../extensions/main-api";
import { app, autoUpdater, dialog, powerMonitor } from "electron"; import { app, autoUpdater, dialog, powerMonitor } from "electron";
import { appName, isIntegrationTesting, isMac, isWindows, productName } from "../common/vars"; import { appName, isIntegrationTesting, isMac, isWindows, productName, isDevelopment } from "../common/vars";
import { LensProxy } from "./lens-proxy"; import { LensProxy } from "./lens-proxy";
import { WindowManager } from "./window-manager"; import { WindowManager } from "./window-manager";
import { ClusterManager } from "./cluster-manager"; import { ClusterManager } from "./cluster-manager";
@ -177,7 +177,6 @@ di.runSetups().then(() => {
kubeApiRequest, kubeApiRequest,
shellApiRequest, shellApiRequest,
}); });
const devServer = createDevServer(lensProxy.port);
ClusterManager.createInstance().init(); ClusterManager.createInstance().init();
@ -185,10 +184,7 @@ di.runSetups().then(() => {
try { try {
logger.info("🔌 Starting LensProxy"); logger.info("🔌 Starting LensProxy");
await Promise.all([ await lensProxy.listen(); // lensProxy.port available
lensProxy.listen(),
devServer?.start(),
]);
} catch (error) { } catch (error) {
dialog.showErrorBox("Lens Error", `Could not start proxy: ${error?.message || "unknown error"}`); dialog.showErrorBox("Lens Error", `Could not start proxy: ${error?.message || "unknown error"}`);
@ -239,8 +235,11 @@ di.runSetups().then(() => {
logger.info("🖥️ Starting WindowManager"); logger.info("🖥️ Starting WindowManager");
const windowManager = WindowManager.createInstance(); const windowManager = WindowManager.createInstance();
if (devServer) {
// override main content view url to local webpack-dev-server to support HMR / live-reload // Override main content view url to local webpack-dev-server to support HMR / live-reload
if (isDevelopment) {
const devServer = createDevServer(lensProxy.port);
await devServer.start();
windowManager.mainContentUrl = `http://localhost:${devServer.options.port}`; windowManager.mainContentUrl = `http://localhost:${devServer.options.port}`;
} }

View File

@ -6,7 +6,7 @@
import Webpack from "webpack"; import Webpack from "webpack";
import WebpackDevServer from "webpack-dev-server"; import WebpackDevServer from "webpack-dev-server";
import { webpackLensRenderer } from "./webpack.renderer"; import { webpackLensRenderer } from "./webpack.renderer";
import { buildDir, isDevelopment, webpackDevServerPort } from "./src/common/vars"; import { buildDir, webpackDevServerPort } from "./src/common/vars";
import logger from "./src/common/logger"; import logger from "./src/common/logger";
export interface DevServer extends WebpackDevServer { export interface DevServer extends WebpackDevServer {
@ -18,11 +18,7 @@ export interface DevServer extends WebpackDevServer {
* @url https://webpack.js.org/configuration/dev-server/ * @url https://webpack.js.org/configuration/dev-server/
* @url https://github.com/chimurai/http-proxy-middleware * @url https://github.com/chimurai/http-proxy-middleware
*/ */
export function createDevServer(lensProxyPort: number): DevServer | undefined { export function createDevServer(lensProxyPort: number): DevServer {
if (!isDevelopment) {
return undefined;
}
const config = webpackLensRenderer(); const config = webpackLensRenderer();
const compiler = Webpack(config); const compiler = Webpack(config);

View File

@ -184,6 +184,4 @@ export function cssModulesWebpackRule(
}; };
} }
export default [ export default webpackLensRenderer;
webpackLensRenderer,
];