Просмотр исходного кода

feat(warn): infer anonymous component named based on resolve name

Evan You 6 лет назад
Родитель
Сommit
dece6102aa
1 измененных файлов с 15 добавлено и 3 удалено
  1. 15 3
      packages/runtime-core/src/helpers/resolveAssets.ts

+ 15 - 3
packages/runtime-core/src/helpers/resolveAssets.ts

@@ -1,5 +1,10 @@
 import { currentRenderingInstance } from '../componentRenderUtils'
-import { currentInstance, Component, FunctionalComponent } from '../component'
+import {
+  currentInstance,
+  Component,
+  FunctionalComponent,
+  ComponentOptions
+} from '../component'
 import { Directive } from '../directives'
 import {
   camelize,
@@ -69,8 +74,15 @@ function resolveAsset(
         res = self
       }
     }
-    if (__DEV__ && warnMissing && !res) {
-      warn(`Failed to resolve ${type.slice(0, -1)}: ${name}`)
+    if (__DEV__) {
+      if (res) {
+        // in dev, infer anonymous component's name based on registered name
+        if (type === COMPONENTS && !(res as Component).name) {
+          ;(res as ComponentOptions).name = name
+        }
+      } else if (warnMissing) {
+        warn(`Failed to resolve ${type.slice(0, -1)}: ${name}`)
+      }
     }
     return res
   } else if (__DEV__) {