fix: vite dev mode

fix an issue caused by da3bc5aeb7
This commit is contained in:
JellyBrick
2023-12-18 19:07:29 +09:00
parent fc1a7cda62
commit 7cadacd8cf
2 changed files with 24 additions and 16 deletions

View File

@ -596,7 +596,16 @@ app.whenReady().then(async () => {
if (is.dev() && process.env.ELECTRON_RENDERER_URL) { if (is.dev() && process.env.ELECTRON_RENDERER_URL) {
// HACK: to make vite work with electron renderer (supports hot reload) // HACK: to make vite work with electron renderer (supports hot reload)
event.returnValue = [null, ` event.returnValue = [null, `
console.log('Loading vite from dev server'); console.log('${LoggerPrefix}', 'Loading vite from dev server');
(async () => {
await new Promise((resolve) => {
if (document.readyState === 'loading') {
console.log('${LoggerPrefix}', 'Waiting for DOM to load');
document.addEventListener('DOMContentLoaded', () => resolve(), { once: true });
} else {
resolve();
}
});
const viteScript = document.createElement('script'); const viteScript = document.createElement('script');
viteScript.type = 'module'; viteScript.type = 'module';
viteScript.src = '${process.env.ELECTRON_RENDERER_URL}/@vite/client'; viteScript.src = '${process.env.ELECTRON_RENDERER_URL}/@vite/client';
@ -605,6 +614,7 @@ app.whenReady().then(async () => {
rendererScript.src = '${process.env.ELECTRON_RENDERER_URL}/renderer.ts'; rendererScript.src = '${process.env.ELECTRON_RENDERER_URL}/renderer.ts';
document.body.appendChild(viteScript); document.body.appendChild(viteScript);
document.body.appendChild(rendererScript); document.body.appendChild(rendererScript);
})();
0 0
`]; `];
} else { } else {

View File

@ -202,13 +202,11 @@ const main = async () => {
const initObserver = async () => { const initObserver = async () => {
// check document.documentElement is ready // check document.documentElement is ready
await new Promise<void>((resolve) => { await new Promise<void>((resolve) => {
document.addEventListener( if (document.readyState === 'loading') {
'DOMContentLoaded', document.addEventListener('DOMContentLoaded', () => resolve(), { once: true });
() => { } else {
resolve(); resolve();
}, }
{ once: true },
);
}); });
const observer = new MutationObserver(() => { const observer = new MutationObserver(() => {