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

refactor: only run useCssModule code in non-global builds

Evan You 6 лет назад
Родитель
Сommit
86464e8c04
1 измененных файлов с 23 добавлено и 16 удалено
  1. 23 16
      packages/runtime-core/src/helpers/useCssModule.ts

+ 23 - 16
packages/runtime-core/src/helpers/useCssModule.ts

@@ -2,22 +2,29 @@ import { getCurrentInstance } from '../component'
 import { EMPTY_OBJ } from '@vue/shared'
 import { warn } from '../warning'
 
-export function useCSSModule(name = '$style'): Record<string, string> {
-  const instance = getCurrentInstance()!
-  if (!instance) {
-    __DEV__ && warn(`useCSSModule must be called inside setup()`)
+export const useCSSModule = (name = '$style'): Record<string, string> => {
+  if (!__GLOBAL__) {
+    const instance = getCurrentInstance()!
+    if (!instance) {
+      __DEV__ && warn(`useCSSModule must be called inside setup()`)
+      return EMPTY_OBJ
+    }
+    const modules = instance.type.__cssModules
+    if (!modules) {
+      __DEV__ && warn(`Current instance does not have CSS modules injected.`)
+      return EMPTY_OBJ
+    }
+    const mod = modules[name]
+    if (!mod) {
+      __DEV__ &&
+        warn(`Current instance does not have CSS module named "${name}".`)
+      return EMPTY_OBJ
+    }
+    return mod as Record<string, string>
+  } else {
+    if (__DEV__) {
+      warn(`useCSSModule() is not supported in the global build.`)
+    }
     return EMPTY_OBJ
   }
-  const modules = instance.type.__cssModules
-  if (!modules) {
-    __DEV__ && warn(`Current instance does not have CSS modules injected.`)
-    return EMPTY_OBJ
-  }
-  const mod = modules[name]
-  if (!mod) {
-    __DEV__ &&
-      warn(`Current instance does not have CSS module named "${name}".`)
-    return EMPTY_OBJ
-  }
-  return mod as Record<string, string>
 }