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) {
// HACK: to make vite work with electron renderer (supports hot reload)
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');
viteScript.type = 'module';
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';
document.body.appendChild(viteScript);
document.body.appendChild(rendererScript);
})();
0
`];
} else {

View File

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