mirror of https://github.com/vuejs/core.git
workflow: upgrade repl, use monaco + volar for sfc playground (#8625)
This commit is contained in:
parent
ae7453f0f1
commit
124160e417
|
@ -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>
|
||||
|
|
|
@ -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:*"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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' })
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue