]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
chore(sfc-playground): handle ssr-only compile errors
authorEvan You <yyx990803@gmail.com>
Mon, 28 Jun 2021 21:34:52 +0000 (17:34 -0400)
committerEvan You <yyx990803@gmail.com>
Mon, 28 Jun 2021 21:34:52 +0000 (17:34 -0400)
packages/sfc-playground/src/sfcCompiler.ts

index 09e748053911d676329276a9ec37a07f622a94c5..9f04f2519aab1ad3ff6d6f2d024330de0937a236 100644 (file)
@@ -97,10 +97,11 @@ export async function compileFile({ filename, code, compiled }: File) {
   // the render fn is inlined.
   if (descriptor.scriptSetup) {
     const ssrScriptResult = await doCompileScript(descriptor, id, true)
-    if (!ssrScriptResult) {
-      return
+    if (ssrScriptResult) {
+      ssrCode += ssrScriptResult[0]
+    } else {
+      ssrCode = `/* SSR compile error: ${store.errors[0]} */`
     }
-    ssrCode += ssrScriptResult[0]
   } else {
     // when no <script setup> is used, the script result will be identical.
     ssrCode += clientScript
@@ -121,10 +122,12 @@ export async function compileFile({ filename, code, compiled }: File) {
     clientCode += clientTemplateResult
 
     const ssrTemplateResult = doCompileTemplate(descriptor, id, bindings, true)
-    if (!ssrTemplateResult) {
-      return
+    if (ssrTemplateResult) {
+      // ssr compile failure is fine
+      ssrCode += ssrTemplateResult
+    } else {
+      ssrCode = `/* SSR compile error: ${store.errors[0]} */`
     }
-    ssrCode += ssrTemplateResult
   }
 
   if (hasScoped) {