diff --git a/packages/analytics/src/storage.ts b/packages/analytics/src/storage.ts index b58abe216a0480a6acf7f3f98a1c80b5e3e590b5..5fbe27a9c7d4c2e0323590d79d040e4f0cfb38a0 100644 --- a/packages/analytics/src/storage.ts +++ b/packages/analytics/src/storage.ts @@ -1,4 +1,4 @@ -import { isFunction } from './utils'; +import { isClient, isFunction } from './utils'; interface StorageSetOptions { expire?: number; @@ -31,7 +31,9 @@ export class Storage { this.store.setItem(key, JSON.stringify(data)); } remove(key: string) { - this.store.removeItem(key); + if (isClient) { + this.store.removeItem(key); + } } setExpire(key: string, expire: number) { const { value } = this.get(key); @@ -49,7 +51,10 @@ export class Storage { onValid?: (value: any, expire: number) => void; } = {} ) { - const dataStr = this.store.getItem(key); + let dataStr; + if (isClient) { + dataStr = this.store.getItem(key); + } if (!dataStr) { return { value: undefined, diff --git a/packages/analytics/src/utils.ts b/packages/analytics/src/utils.ts index a86fd821ccd6885e898d7953d604e63f5b6fabca..17d92462fd3a3edae1cd6f42dddaed5149951e96 100644 --- a/packages/analytics/src/utils.ts +++ b/packages/analytics/src/utils.ts @@ -47,3 +47,8 @@ export function whenWindowLoad(callback: () => any): void { callback(); } } + +/** + * 是否是浏览器环境 + */ +export const isClient = typeof window !== 'undefined';