diff --git a/packages/backend/src/server/web/boot.js b/packages/backend/src/server/web/boot.js index 43f8553abd..a584e116cf 100644 --- a/packages/backend/src/server/web/boot.js +++ b/packages/backend/src/server/web/boot.js @@ -13,6 +13,7 @@ // ブロックの中に入れないと、定義した変数がブラウザのグローバルスコープに登録されてしまい邪魔なので (async () => { + console.log('boot!') window.onerror = (e) => { renderError('SOMETHING_HAPPENED', e.toString()); }; @@ -58,14 +59,11 @@ ? `?salt=${localStorage.getItem('salt')}` : ''; - const script = document.createElement('script'); - script.setAttribute('src', `/assets/${CLIENT_ENTRY}${salt}`); - script.setAttribute('type', 'module'); - script.addEventListener('error', async () => { - await checkUpdate(); - renderError('APP_FETCH_FAILED'); - }); - document.head.appendChild(script); + import(`/assets/${CLIENT_ENTRY}${salt}`) + .catch(async () => { + await checkUpdate(); + renderError('APP_FETCH_FAILED'); + }) //#endregion //#region Theme diff --git a/packages/client/src/init.ts b/packages/client/src/init.ts index 0baa6db0f8..d167ed3a1a 100644 --- a/packages/client/src/init.ts +++ b/packages/client/src/init.ts @@ -203,8 +203,19 @@ if (splash) splash.addEventListener('transitionend', () => { splash.remove(); }); -const rootEl = document.createElement('div'); -document.body.appendChild(rootEl); +const rootEl = (() => { + const MISSKEY_MOUNT_DIV_ID = 'misskey_app'; + + const currentEl = document.getElementById(MISSKEY_MOUNT_DIV_ID); + + if (currentEl) return currentEl; + + const rootEl = document.createElement('div'); + rootEl.id = MISSKEY_MOUNT_DIV_ID; + document.body.appendChild(rootEl); + return rootEl; +})() + app.mount(rootEl); // boot.jsのやつを解除