]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
chore(playground): use CodeMirror during local dev
authorEvan You <yyx990803@gmail.com>
Thu, 30 Nov 2023 13:44:28 +0000 (21:44 +0800)
committerEvan You <yyx990803@gmail.com>
Thu, 30 Nov 2023 13:44:28 +0000 (21:44 +0800)
packages/sfc-playground/src/App.vue

index d3b1dfa5965164f700bb8508ab5ff41da13f40b2..0b97faba0b653c5f5ec200deae8a22fbe02b9c75 100644 (file)
@@ -1,8 +1,22 @@
 <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`)
@@ -97,8 +111,9 @@ onMounted(() => {
     @toggle-ssr="toggleSSR"
   />
   <Repl
+    v-if="EditorComponent"
     :theme="theme"
-    :editor="Monaco"
+    :editor="EditorComponent"
     @keydown.ctrl.s.prevent
     @keydown.meta.s.prevent
     :ssr="useSSRMode"