fix fs module hanging not allowing code to run
Run button on Windows stopped working as CodeRunner was hanging when
executing fs.promises.mkdir as described in electron/electron#20951
It started happening after electron update to v12 in 1f515e7.
This commit adds the workaround suggested in electron/electron#19554
that fixes the issue.
This commit is contained in:
@@ -115,14 +115,14 @@ if (isDevelopment) {
|
|||||||
function loadApplication(window: BrowserWindow) {
|
function loadApplication(window: BrowserWindow) {
|
||||||
if (process.env.WEBPACK_DEV_SERVER_URL) {
|
if (process.env.WEBPACK_DEV_SERVER_URL) {
|
||||||
// Load the url of the dev server if in development mode
|
// Load the url of the dev server if in development mode
|
||||||
win.loadURL(process.env.WEBPACK_DEV_SERVER_URL as string);
|
loadUrlWithNodeWorkaround(win, process.env.WEBPACK_DEV_SERVER_URL as string);
|
||||||
if (!process.env.IS_TEST) {
|
if (!process.env.IS_TEST) {
|
||||||
win.webContents.openDevTools();
|
win.webContents.openDevTools();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
createProtocol('app');
|
createProtocol('app');
|
||||||
// Load the index.html when not in development
|
// Load the index.html when not in development
|
||||||
win.loadURL('app://./index.html');
|
loadUrlWithNodeWorkaround(win, 'app://./index.html');
|
||||||
// tslint:disable-next-line:max-line-length
|
// tslint:disable-next-line:max-line-length
|
||||||
autoUpdater.checkForUpdatesAndNotify(); // https://nklayman.github.io/vue-cli-plugin-electron-builder/guide/recipes.html#check-for-updates-in-background-js-ts
|
autoUpdater.checkForUpdatesAndNotify(); // https://nklayman.github.io/vue-cli-plugin-electron-builder/guide/recipes.html#check-for-updates-in-background-js-ts
|
||||||
}
|
}
|
||||||
@@ -136,3 +136,10 @@ function configureExternalsUrlsOpenBrowser(window: BrowserWindow) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Workaround for https://github.com/electron/electron/issues/19554 otherwise fs does not work
|
||||||
|
function loadUrlWithNodeWorkaround(window: BrowserWindow, url: string) {
|
||||||
|
setTimeout(() => {
|
||||||
|
window.loadURL(url);
|
||||||
|
}, 10);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user