<script setup lang="ts">
import Header from './Header.vue'
import { Repl, ReplStore, SFCOptions } from '@vue/repl'
-import Monaco from '@vue/repl/monaco-editor'
+import type Monaco from '@vue/repl/monaco-editor'
+import type CodeMirror from '@vue/repl/codemirror-editor'
import { ref, watchEffect, onMounted } from 'vue'
+import { shallowRef } from 'vue'
+
+const EditorComponent = shallowRef<typeof Monaco | typeof CodeMirror>()
+
+if (import.meta.env.DEV) {
+ import('@vue/repl/codemirror-editor').then(
+ mod => (EditorComponent.value = mod.default)
+ )
+} else {
+ import('@vue/repl/monaco-editor').then(
+ mod => (EditorComponent.value = mod.default)
+ )
+}
const setVH = () => {
document.documentElement.style.setProperty('--vh', window.innerHeight + `px`)
@toggle-ssr="toggleSSR"
/>
<Repl
+ v-if="EditorComponent"
:theme="theme"
- :editor="Monaco"
+ :editor="EditorComponent"
@keydown.ctrl.s.prevent
@keydown.meta.s.prevent
:ssr="useSSRMode"