]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
workflow: upgrade repl, use monaco + volar for sfc playground (#8625)
authorEvan You <yyx990803@gmail.com>
Fri, 23 Jun 2023 01:03:52 +0000 (09:03 +0800)
committerGitHub <noreply@github.com>
Fri, 23 Jun 2023 01:03:52 +0000 (09:03 +0800)
packages/sfc-playground/index.html
packages/sfc-playground/package.json
packages/sfc-playground/src/App.vue
packages/sfc-playground/src/Header.vue
packages/sfc-playground/src/download/download.ts
pnpm-lock.yaml

index d9ca2eb808f9d69f1a59a5abf83f16ffc0a8214d..26431e134476a587f63c1ac141ed755049c56de5 100644 (file)
@@ -8,14 +8,14 @@
     <title>Vue SFC Playground</title>
     <script>
       // process shim for old versions of @vue/compiler-sfc dependency
-      window.process = { env: {} }
-      const savedPreferDark = localStorage.getItem('vue-sfc-playground-prefer-dark')
-      if (
-        savedPreferDark === 'true' ||
-        (!savedPreferDark && window.matchMedia('(prefers-color-scheme: dark)').matches)
-      ) {
+      // window.process = { env: {} }
+      // const savedPreferDark = localStorage.getItem('vue-sfc-playground-prefer-dark')
+      // if (
+      //   savedPreferDark === 'true' ||
+      //   (!savedPreferDark && window.matchMedia('(prefers-color-scheme: dark)').matches)
+      // ) {
         document.documentElement.classList.add('dark')
-      }
+      // }
     </script>
     <script type="module" src="/src/main.ts"></script>
   </head>
index 38916073af533fd76796b288f452b86ca048ee66..0203934823582bbd8862041d377e8c8aefd528cf 100644 (file)
@@ -12,7 +12,7 @@
     "vite": "^4.3.0"
   },
   "dependencies": {
-    "@vue/repl": "^1.5.0",
+    "@vue/repl": "^2.1.3",
     "file-saver": "^2.0.5",
     "jszip": "^3.6.0",
     "vue": "workspace:*"
index f7db1b7951b6170657f2cc59314b58fb48c492b0..e21f7328e823ec54ae5944ea4e6c6527b9272785 100644 (file)
@@ -1,6 +1,7 @@
 <script setup lang="ts">
 import Header from './Header.vue'
 import { Repl, ReplStore, SFCOptions } from '@vue/repl'
+import Monaco from '@vue/repl/monaco-editor'
 import { ref, watchEffect } from 'vue'
 
 const setVH = () => {
@@ -82,6 +83,7 @@ function toggleSSR() {
     @toggle-ssr="toggleSSR"
   />
   <Repl
+    :editor="Monaco"
     @keydown.ctrl.s.prevent
     @keydown.meta.s.prevent
     :ssr="useSSRMode"
index 45db4d3af05197309c9c7af06df6bee9685f24a7..bbcbe3f2a6ca6d9c4995604eea82402e57365b96 100644 (file)
@@ -1,8 +1,8 @@
 <script setup lang="ts">
 import { downloadProject } from './download/download'
 import { ref, onMounted } from 'vue'
-import Sun from './icons/Sun.vue'
-import Moon from './icons/Moon.vue'
+// import Sun from './icons/Sun.vue'
+// import Moon from './icons/Moon.vue'
 import Share from './icons/Share.vue'
 import Download from './icons/Download.vue'
 import GitHub from './icons/GitHub.vue'
@@ -51,14 +51,14 @@ async function copyLink(e: MouseEvent) {
   alert('Sharable URL has been copied to clipboard.')
 }
 
-function toggleDark() {
-  const cls = document.documentElement.classList
-  cls.toggle('dark')
-  localStorage.setItem(
-    'vue-sfc-playground-prefer-dark',
-    String(cls.contains('dark'))
-  )
-}
+// function toggleDark() {
+//   const cls = document.documentElement.classList
+//   cls.toggle('dark')
+//   localStorage.setItem(
+//     'vue-sfc-playground-prefer-dark',
+//     String(cls.contains('dark'))
+//   )
+// }
 
 onMounted(async () => {
   window.addEventListener('click', () => {
@@ -145,10 +145,10 @@ async function fetchVersions(): Promise<string[]> {
       >
         <span>{{ ssr ? 'SSR ON' : 'SSR OFF' }}</span>
       </button>
-      <button title="Toggle dark mode" class="toggle-dark" @click="toggleDark">
+      <!-- <button title="Toggle dark mode" class="toggle-dark" @click="toggleDark">
         <Sun class="light" />
         <Moon class="dark" />
-      </button>
+      </button> -->
       <button title="Copy sharable URL" class="share" @click="copyLink">
         <Share />
       </button>
index 81d602f1258e576cb8ffbcbf9ddd45f169e27980..eb534538bf29cc39b5a795b85141de521c3849b5 100644 (file)
@@ -27,7 +27,11 @@ export async function downloadProject(store: ReplStore) {
 
   const files = store.getFiles()
   for (const file in files) {
-    src.file(file, files[file])
+    if (file !== 'import-map.json') {
+      src.file(file, files[file])
+    } else {
+      zip.file(file, files[file])
+    }
   }
 
   const blob = await zip.generateAsync({ type: 'blob' })
index ea36e5476313f7d48661c2751f003384e4bcc80d..bb444d5f8f2834a2da0daf534d3a73ab55e1692d 100644 (file)
@@ -333,8 +333,8 @@ importers:
   packages/sfc-playground:
     dependencies:
       '@vue/repl':
-        specifier: ^1.5.0
-        version: 1.5.0(vue@packages+vue)
+        specifier: ^2.1.3
+        version: 2.1.3
       file-saver:
         specifier: ^2.0.5
         version: 2.0.5
@@ -1303,12 +1303,8 @@ packages:
     engines: {node: '>= 0.12.0'}
     dev: true
 
-  /@vue/repl@1.5.0(vue@packages+vue):
-    resolution: {integrity: sha512-qFqKtvA2FM9viYXzbWrpGrL8mDGswsqDsEjfaibr/YOqeza7i49VmO0AKPrOdQDOS2qmq9uV+G6OPX1rGhUSIQ==}
-    peerDependencies:
-      vue: ^3.2.13
-    dependencies:
-      vue: link:packages/vue
+  /@vue/repl@2.1.3:
+    resolution: {integrity: sha512-W6BiDOrDH3dsWYs5StVRdl1exXjVgXZYuKu1uG2FJdm3O7+yWWFPYXLdNneB9eOCaF1wbfQVaj4ZP46N0nPSpw==}
     dev: false
 
   /@zeit/schemas@2.6.0:
@@ -3286,7 +3282,7 @@ packages:
   /is-reference@1.2.1:
     resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
     dependencies:
-      '@types/estree': 1.0.0
+      '@types/estree': 0.0.48
     dev: true
 
   /is-regex@1.1.4: