diff --git a/src/lib/posthog.js b/src/lib/posthog.js index 1173a250..03a10956 100644 --- a/src/lib/posthog.js +++ b/src/lib/posthog.js @@ -1,11 +1,21 @@ // src/lib/posthog.js import posthog from 'posthog-js'; +// 初始化状态管理(防止重复初始化) +let isInitializing = false; +let isInitialized = false; + /** * Initialize PostHog SDK * Should be called once when the app starts */ export const initPostHog = () => { + // 防止重复初始化 + if (isInitializing || isInitialized) { + console.log('📊 PostHog 已初始化或正在初始化中,跳过重复调用'); + return; + } + // Only run in browser environment if (typeof window === 'undefined') return; @@ -17,6 +27,8 @@ export const initPostHog = () => { return; } + isInitializing = true; + try { posthog.init(apiKey, { api_host: apiHost, @@ -85,9 +97,17 @@ export const initPostHog = () => { }, }); + isInitialized = true; console.log('📊 PostHog Analytics initialized'); } catch (error) { + // 忽略 AbortError(通常由热重载或快速导航引起) + if (error.name === 'AbortError') { + console.log('⚠️ PostHog 初始化请求被中断(可能是热重载),这是正常的'); + return; + } console.error('❌ PostHog initialization failed:', error); + } finally { + isInitializing = false; } };