feat(template-explorer): add vapor option

This commit is contained in:
三咲智子 Kevin Deng 2024-06-20 19:11:01 +08:00
parent be6a2d1d35
commit aa5fe96d17
No known key found for this signature in database
2 changed files with 22 additions and 2 deletions

View File

@ -1,6 +1,10 @@
import type * as m from 'monaco-editor'
import type { CompilerError } from '@vue/compiler-dom'
import { type CompilerOptions, compile } from '@vue/compiler-vapor'
import { compile } from '@vue/compiler-dom'
import {
type CompilerOptions,
compile as vaporCompile,
} from '@vue/compiler-vapor'
// import { compile as ssrCompile } from '@vue/compiler-ssr'
import {
@ -8,6 +12,7 @@ import {
defaultOptions,
initOptions,
ssrMode,
vaporMode,
} from './options'
import { toRaw, watchEffect } from '@vue/runtime-dom'
import { SourceMapConsumer } from 'source-map-js'
@ -75,7 +80,9 @@ window.init = () => {
console.clear()
try {
const errors: CompilerError[] = []
const compileFn = /* ssrMode.value ? ssrCompile : */ compile
const compileFn = /* ssrMode.value ? ssrCompile : */ (
vaporMode.value ? vaporCompile : compile
) as typeof vaporCompile
const start = performance.now()
const { code, ast, map } = compileFn(source, {
...compilerOptions,

View File

@ -3,6 +3,7 @@ import type { CompilerOptions } from '@vue/compiler-vapor'
import { BindingTypes } from '@vue/compiler-core'
export const ssrMode = ref(false)
export const vaporMode = ref(true)
export const defaultOptions: CompilerOptions = {
mode: 'module',
@ -222,6 +223,18 @@ const App = {
}),
h('label', { for: 'compat' }, 'v2 compat mode'),
]),
h('li', [
h('input', {
type: 'checkbox',
id: 'vapor',
checked: vaporMode.value,
onChange(e: Event) {
vaporMode.value = (e.target as HTMLInputElement).checked
},
}),
h('label', { for: 'vapor' }, 'vapor'),
]),
]),
]),
]