1.0.7 • Published 4 years ago

mitojs v1.0.7

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

mitojs

npm version install size npm downloads

概要

一款轻量级的收集页面的用户点击行为、路由跳转、接口报错、代码报错、并上报服务端的SDK

安装

使用npm

npm i mitojs

使用CDN

<script src="https://cdn.jsdelivr.net/npm/mitojs/dist/mito.min.js"></script>

使用环境

Vue2.6

import MITO from 'mitojs'
import Vue from 'vue'
Vue.use(MITO.MitoVue)
MITO.init({
  apikey: 'aabbcc',
  version: '1.0.0',
  dsn: 'http://test.com/error'
})

JS

<script src="https://cdn.jsdelivr.net/npm/mitojs/dist/mito.min.js"></script>
MITO.init({})

options

NameTypeDefaultDescription
dsnstring""(需要来个默认地址)dsn服务地址,上报接口的地址,post方法
disabledbooleantrue默认是开启状态,为true时,会将sdk禁用
apikeystring""每个项目对应一个apikey,用于存放错误集的唯一标识
debugbooleanfalse默认不会在控制台打印用户行为和错误信息,为true时将会在控台打印
versionstring0.0.0线上版本,服务端会做数据过滤,version就是其中一环,可以在页面更好的搜索错误日志
maxBreadcrumbsnumber20用户行为存放的最大容量,最大是100,当你配置超过100时,最终还是会设置成100,一方面是防止占更多的内存、一方面是保存超过100条用户行为没多大意义
silentXhrbooleanfalse默认会监控xhr,为true时,将不再监控
silentFetchbooleanfalse默认会监控fetch,为true时,将不再监控
silentConsolebooleanfalse默认会监控console,为true时,将不再监控
silentDombooleanfalse默认会监听click事件,当用户点击的标签不是body时就会被放入breadcrumb,为true,将不在监听
silentHistorybooleanfalse默认会监控popstate、pushState、replaceState,为true时,将不再监控
silentErrorbooleanfalse默认会监控error,为true时,将不在监控
silentUnhandledrejectionbooleanfalse默认会监控unhandledrejection,为true时,将不在监控
silentHashchangebooleanfalse默认会监控hashchange,为true时,将不在监控
silentVuebooleanfalse默认会监控Vue的错误,为true时,将不在监控
beforeSendfunctionnull钩子函数:在每次发送事件前会调,如果返回null | undefined | false时,将忽略本次上传
beforeBreadcrumbfunctionnull钩子函数:在每次添加用户行为事件前都会调用,如果返回null | undefined | false时,将忽略本次的push操作

hooks

beforeSend

function(event: ReportDataType)
interface ReportDataType {
  type?: ERRORTYPES
  message?: string
  url: string
  name?: string
  stack?: any
  time?: number
  errorId?: number
  level: number
  // ajax
  elapsedTime?: number
  request?: {
    httpType?: string
    method: string
    url: string
    data: any
  }
  response?: {
    status: number
    statusText: string
    description: string
  }
  // vue
  componentName?: string
  propsData?: any
  // logerror
  info?: string
}

beforeBreadcrumb

function(breadcrumb: Breadcrumb, hint: BreadcrumbPushData)
interface BreadcrumbPushData {
  type: string
  data: any
}
export class Breadcrumb{
  private maxBreadcrumbs:number
  private stack:BreadcrumbPushData[]
  push()
  getStack()
}

demo

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago