Procházet zdrojové kódy

feat: log on the fly template compilation error

Evan You před 6 roky
rodič
revize
95d7e1f471

+ 6 - 1
packages/runtime-core/src/component.ts

@@ -319,7 +319,12 @@ function finishComponentSetup(
     if (Component.template && !Component.render) {
       if (compile) {
         Component.render = compile(Component.template, {
-          onError(err) {}
+          onError(err) {
+            if (__DEV__) {
+              // TODO use err.loc to provide codeframe like Vue 2
+              warn(`Template compilation error: ${err.message}`)
+            }
+          }
         })
       } else if (__DEV__) {
         warn(

+ 2 - 1
packages/vue/src/index.ts

@@ -1,8 +1,8 @@
 // This package is the "full-build" that includes both the runtime
 // and the compiler, and supports on-the-fly compilation of the template option.
 import { compile, CompilerOptions } from '@vue/compiler-dom'
-import * as runtimeDom from '@vue/runtime-dom'
 import { registerRuntimeCompiler, RenderFunction } from '@vue/runtime-dom'
+import * as runtimeDom from '@vue/runtime-dom'
 
 function compileToFunction(
   template: string,
@@ -12,6 +12,7 @@ function compileToFunction(
     hoistStatic: true,
     ...options
   })
+
   return new Function('Vue', code)(runtimeDom) as RenderFunction
 }