diff --git a/src/runtimeContext.ts b/src/runtimeContext.ts index e076eac2..cc43b5ad 100644 --- a/src/runtimeContext.ts +++ b/src/runtimeContext.ts @@ -9,7 +9,7 @@ import { UnionToIntersection, isFunction, } from './utils' -import Vue$1 from 'vue' +import type Vue$1 from 'vue' let vueDependency: VueConstructor | undefined = undefined diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 60f72a1d..9b715714 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -1,4 +1,4 @@ -import Vue from 'vue' +import { getRegisteredVueOrDefault } from '../runtimeContext' const toString = (x: any) => Object.prototype.toString.call(x) @@ -99,7 +99,9 @@ export function isUndef(v: any): boolean { } export function warn(msg: string, vm?: Vue) { - Vue.util.warn(msg, vm) + const Vue = getRegisteredVueOrDefault() + if (!Vue || !Vue.util) console.warn(`[vue-composition-api] ${msg}`) + else Vue.util.warn(msg, vm) } export function logError(err: Error, vm: Vue, info: string) { diff --git a/test/v3/runtime-core/apiWatch.spec.ts b/test/v3/runtime-core/apiWatch.spec.ts index f71bcd05..57dc6335 100644 --- a/test/v3/runtime-core/apiWatch.spec.ts +++ b/test/v3/runtime-core/apiWatch.spec.ts @@ -8,11 +8,12 @@ import { shallowReactive, nextTick, } from '../../../src' -import Vue from 'vue' +import { getRegisteredVueOrDefault } from '../../../src/runtimeContext' // reference: https://vue-composition-api-rfc.netlify.com/api.html#watch describe('api: watch', () => { + const Vue = getRegisteredVueOrDefault() // const warnSpy = jest.spyOn(console, 'warn'); const warnSpy = jest.spyOn((Vue as any).util, 'warn')