Преглед изворни кода

build: avoid exporting setDevTools in global prod build

Evan You пре 2 година
родитељ
комит
ee68c525f0
2 измењених фајлова са 14 додато и 2 уклоњено
  1. 1 1
      packages/runtime-core/src/devtools.ts
  2. 13 1
      packages/runtime-core/src/index.ts

+ 1 - 1
packages/runtime-core/src/devtools.ts

@@ -21,7 +21,7 @@ enum DevtoolsHooks {
   PERFORMANCE_END = 'perf:end'
 }
 
-interface DevtoolsHook {
+export interface DevtoolsHook {
   enabled?: boolean
   emit: (event: string, ...payload: any[]) => void
   on: (event: string, handler: Function) => void

+ 13 - 1
packages/runtime-core/src/index.ts

@@ -150,7 +150,18 @@ export const ErrorTypeStrings = (
 ) as typeof _ErrorTypeStrings
 
 // For devtools
-export { devtools, setDevtoolsHook } from './devtools'
+import {
+  devtools as _devtools,
+  setDevtoolsHook as _setDevtoolsHook,
+  DevtoolsHook
+} from './devtools'
+
+export const devtools = (
+  __DEV__ || __FEATURE_PROD_DEVTOOLS__ ? _devtools : undefined
+) as DevtoolsHook
+export const setDevtoolsHook = (
+  __DEV__ || __FEATURE_PROD_DEVTOOLS__ ? _setDevtoolsHook : NOOP
+) as typeof _setDevtoolsHook
 
 // Types -------------------------------------------------------------------------
 
@@ -377,6 +388,7 @@ import {
   softAssertCompatEnabled
 } from './compat/compatConfig'
 import { resolveFilter as _resolveFilter } from './helpers/resolveAssets'
+import { NOOP } from '@vue/shared'
 
 /**
  * @internal only exposed in compat builds