这个项目能做什么

Analytics 一个轻量级的分析抽象层,用于追踪页面浏览、自定义事件和识别访客。设计为通过可插拔架构与任何第三方分析工具或自有后台协同工作。 特性 - 可扩展的插件系统,用于第三方集成 - 通过时间旅行和离线模式测试和调试分析 - 生命周期钩子,用于修改追踪调用 - 同构 — 在浏览器和 Node.js 中均可运行 - 事件队列,直至分析库加载完成 - 有条件地加载第三方脚本 - 支持离线工作 - TypeScript 支持 安装 npm install analytics --save npx 也可通过 yarn、pnpm 和 bun 使用。 使用 import Analytics from 'analytics' import googleAnalytics from '@analytics/google-analytics' import customerIo from '@analytics/customerio' const analytics = Analytics({ app: 'my-app-name', version: 100, plugins: [ googleAnalytics({ measurementIds: ['G-XXXXXXXX'] }), customerIo({ siteId: '123-xyz' }) ] }) analytics.page() analytics.track('userPurchase', { price: 20, item: 'pink socks' }) analytics.identify('user-id-xyz', { firstName: 'bill', lastName: 'murray' }) 核心 API - analytics.identify(userId, traits) — 识别访客并将其数据存储在 localStorage 中 - analytics.track(eventName, payload) — 追踪自定义分析事件 - analytics.page(data) — 触发页面视图追踪 - analytics.user(key) — 检索存储的用户数据 - analytics.reset() — 清除访客信息并重置状态 - analytics.ready(callback) — 当所有提供者加载完毕时触发 - analytics.on(event, callback) / analytics.once(event, callback) — 监听生命周期事件 - analytics.getState(key) — 访问内部状态的子键 - analytics.storage — 用于持久化数据的工具(localStorage、Cookie) - analytics.plugins.enable/disable(namespace) — 动态管理插件 插件系统 该库随附许多官方插件,包括 Google Analytics、Segment、Amplitude、AWS Pinpoint、Countly、Crazy Egg、Churnzero 和 activity-utils。同时也有社区插件可用。可创建自定义插件以响应事件或添加自定义方法。 理念 - 不被锁定在单一分析工具中 - 通过调整插件数组轻松添加/移除提供者 - 尊重访客隐私并提供退出机制 - 可插拔的 API,用于业务逻辑扩展