diff --git a/package.json b/package.json index 1944a1962..c461813d0 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "build-all-cjs": "node scripts/build.js vue runtime compiler reactivity shared -af cjs", "build-runtime-esm": "node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler-runtime && node scripts/build.js vue -f esm-browser-runtime", "build-browser-esm": "node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler && node scripts/build.js vue -f esm-browser", - "build-ssr-esm": "node scripts/build.js compiler-sfc server-renderer -f esm-browser", + "build-ssr-esm": "node scripts/build.js compiler-sfc server-renderer vue-vapor -f esm-browser", "build-sfc-playground-self": "cd packages/sfc-playground && npm run build", "preinstall": "npx only-allow pnpm", "postinstall": "simple-git-hooks" diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json index e8d4096fe..98f320599 100644 --- a/packages/compiler-sfc/package.json +++ b/packages/compiler-sfc/package.json @@ -46,6 +46,7 @@ "@vue/compiler-core": "workspace:*", "@vue/compiler-dom": "workspace:*", "@vue/compiler-ssr": "workspace:*", + "@vue/compiler-vapor": "workspace:*", "@vue/shared": "workspace:*", "estree-walker": "^2.0.2", "magic-string": "^0.30.5", diff --git a/packages/compiler-sfc/src/compileTemplate.ts b/packages/compiler-sfc/src/compileTemplate.ts index 2d5ffdad7..65e9bd501 100644 --- a/packages/compiler-sfc/src/compileTemplate.ts +++ b/packages/compiler-sfc/src/compileTemplate.ts @@ -27,6 +27,7 @@ import { } from './template/transformSrcset' import { generateCodeFrame, isObject } from '@vue/shared' import * as CompilerDOM from '@vue/compiler-dom' +import * as CompilerVapor from '@vue/compiler-vapor' import * as CompilerSSR from '@vue/compiler-ssr' import consolidate from '@vue/consolidate' import { warnOnce } from './warn' @@ -55,6 +56,7 @@ export interface SFCTemplateCompileOptions { scoped?: boolean slotted?: boolean isProd?: boolean + vapor?: boolean ssr?: boolean ssrCssVars?: string[] inMap?: RawSourceMap @@ -171,6 +173,7 @@ function doCompileTemplate({ source, ast: inAST, ssr = false, + vapor = false, ssrCssVars, isProd = false, compiler, @@ -205,7 +208,12 @@ function doCompileTemplate({ const shortId = id.replace(/^data-v-/, '') const longId = `data-v-${shortId}` - const defaultCompiler = ssr ? (CompilerSSR as TemplateCompiler) : CompilerDOM + const defaultCompiler = vapor + ? // TODO ssr + (CompilerVapor as TemplateCompiler) + : ssr + ? (CompilerSSR as TemplateCompiler) + : CompilerDOM compiler = compiler || defaultCompiler if (compiler !== defaultCompiler) { diff --git a/packages/sfc-playground/package.json b/packages/sfc-playground/package.json index 1e6bd1a37..c0cd7e10c 100644 --- a/packages/sfc-playground/package.json +++ b/packages/sfc-playground/package.json @@ -13,7 +13,7 @@ "vite": "^5.0.5" }, "dependencies": { - "@vue/repl": "^3.1.1", + "@vue/repl": "4.0.0-alpha.0", "file-saver": "^2.0.5", "jszip": "^3.10.1", "vue": "workspace:*" diff --git a/packages/sfc-playground/src/App.vue b/packages/sfc-playground/src/App.vue index cadd39f4b..c01f05680 100644 --- a/packages/sfc-playground/src/App.vue +++ b/packages/sfc-playground/src/App.vue @@ -1,10 +1,17 @@