SuperAPI AI 工具集

posthog-local-dev-loop

编程与开发

查看项目

更新于 10-15 23:28

技能介绍

用途:为 PostHog 集成建立快速的本地开发流程,包含事件调试、单元测试 mock 与开发/测试专用项目隔离。

前提:已完成 posthog-install-auth 配置;Node.js 20+ 与 npm/pnpm;使用 Vitest 或 Jest;建议为开发单独建一个 PostHog 项目。

主要能力与用法:

  1. 项目结构:src/analytics 下放 posthog.ts(单例客户端)、events.ts(事件分类常量)、flags.ts(功能开关键);tests 下放单元测试与集成测试;.env.local 存开发密钥并 git 忽略,.env.example 作模板。
  2. 开发模式客户端:用 posthog-node 创建单例,开发环境设 flushAt: 1、flushInterval: 0 让事件立即上报,便于仪表盘即时查看;提供 shutdown 关闭客户端。
  3. 浏览器调试:posthog-js 初始化时在 loaded 回调中,仅当 NODE_ENV === 'development' 调用 ph.debug(),把事件打印到控制台;测试环境调用 posthog.opt_out_capturing() 完全禁用采集。
  4. 单元测试 mock:用 vi.mock('posthog-node') 模拟 capture、identify、getFeatureFlag、getAllFlags、shutdown、flush,断言事件属性与功能开关取值。
  5. 集成测试:用真实开发项目密钥创建客户端,flushAt: 1、flushInterval: 0,测试 capture 后 flush 成功及 getAllFlags 返回对象;无密钥时用 describe.skipIf 跳过。
  6. 脚本:dev 用 tsx watch,test 用 vitest run,test:watch 用 vitest --watch,test:integration 注入 POSTHOG_TEST_KEY 后运行集成测试。

常见问题:事件未出现在开发仪表盘多为项目密钥错误;mock 未拦截多为导入路径不匹配;集成测试超时多为网络不可达;调试输出过多需用 NODE_ENV 守卫。

限制:资料未提供具体收费、价格与平台支持范围;需自行准备 PostHog 项目与密钥。后续可参考 posthog-sdk-patterns 获取生产级代码模式。