const { createApp } = Vue const { loadModule } = window['vue3-sfc-loader'] const addStyle = styleStr => { const style = document.createElement('style') const ref = document.head.getElementsByTagName('style')[0] || null style.textContent = styleStr document.head.insertBefore(style, ref) } const getFile = url => fetch(url).then(resp => resp.ok ? resp.text() : Promise.reject(resp)) const moduleCache = { vue: Vue } const options = { addStyle, getFile, moduleCache } const app = createApp({ components: { App: Vue.defineAsyncComponent(() => loadModule('vue/App.vue', options)), Section: Vue.defineAsyncComponent(() => loadModule('vue/Section.vue', options)), Plot: Vue.defineAsyncComponent(() => loadModule('vue/Plot.vue', options)), }, }) app.mount('#app')