Procházet zdrojové kódy

feat(custom-elements): automatically respect custom elements when compiling in browser

Evan You před 3 roky
rodič
revize
9f8f07ed38
1 změnil soubory, kde provedl 13 přidání a 10 odebrání
  1. 13 10
      packages/vue/src/index.ts

+ 13 - 10
packages/vue/src/index.ts

@@ -44,18 +44,21 @@ function compileToFunction(
     template = el ? el.innerHTML : ``
   }
 
-  const { code } = compile(
-    template,
-    extend(
-      {
-        hoistStatic: true,
-        onError: __DEV__ ? onError : undefined,
-        onWarn: __DEV__ ? e => onError(e, true) : NOOP
-      } as CompilerOptions,
-      options
-    )
+  const opts = extend(
+    {
+      hoistStatic: true,
+      onError: __DEV__ ? onError : undefined,
+      onWarn: __DEV__ ? e => onError(e, true) : NOOP
+    } as CompilerOptions,
+    options
   )
 
+  if (!opts.isCustomElement && typeof customElements !== 'undefined') {
+    opts.isCustomElement = tag => !!customElements.get(tag)
+  }
+
+  const { code } = compile(template, opts)
+
   function onError(err: CompilerError, asWarning = false) {
     const message = asWarning
       ? err.message