Skip to content

配置插件

通过SDK侧配置决定是否开启和关闭这些功能。插件配置属于一次性配置,初始化后修改不再生效。

使用说明

全文的client代表的是SDK实例。

开启插件

默认情况下所有插件都是开启状态。以下为开启Js Error插件的示例配置。

js
client('init', {
  ...
  plugins: {
    js_error: true
  }
  ...
})

关闭插件

将插件配置成false则表示关闭插件。以下为关闭Js Error插件的示例配置。

js
client('init', {
  ...
  plugins: {
    js_error: false
  }
  ...
})

配置插件

Pageview

页面加载时上报,用于统计PV、UV、页面停留时长。

js
pageview: {
    // 路由模式,为 manual 时不上报
    routeMode: 'history' | 'manual' = 'history'
    // 指定 history 变化时如何从 URL 中提取 pid
    extractPid?: (url: string) => string
}

Js Error

发生Js Error、Navigate Error时上报。

js
jsError: {
    // 忽略error message匹配得上的错误
    ignoreErrors: (string | RegExp)[] = []
    // 监听 App.error
    hookOnError: boolean = true
    // 监听 App.unhandledRejection
    hookOnUnhandledRejection: boolean = true
    // 监听路由错误
    hookRouteError: boolean = true
    // 对比前后发生的相同错误并且去重
    dedupe: boolean = true
}

收集http、路由切换信息,并在Js Error上报时一并上报。

js
breadcrumb: {
    // 最多保留面包屑数量
    maxBreadcrumbs?: number = 20
    // 新增面包屑时调用的钩子
    onAddBreadcrumb?: (b: Breadcrumb) => Breadcrumb | false
    // 面包屑存满时调用的钩子
    onMaxBreadcrumbs?: (bs: Breadcrumb[], maxBreadcrumbs: number) => Breadcrumb[]
}

Http

调用request、downloadFile、uploadFile时上报。

js
http: {
    // whether to intercept instance.request
    hookRequest: boolean = true
    // whether to intercept instance.downloadFile
    hookDownloadFile: boolean = true
    // whether to intercept instance.uploadFile
    hookUploadFile: boolean = true
    // ignore the urls or RegExps passed in
    ignoreUrls: (string | RegExp)[] = ['slardar 自身上报地址']
    // whether to gather request.body and response.body when response.statusCode >= 400
    collectBodyOnError: boolean = false
    //  developer can extract extra with response.body and httpPayload.if the value returned wasn't undefined or null, it would be set to extra and is_custom_error would be set to true
    extraExtractor?: (body: string | any, related: HttpPayload) => { [key: string]: string } | false
}

setData

调用setData时上报,默认将计算参数大小改为false,由于setData调用较为频繁,所以开启后可能会对页面性能造成一些小波动。

js
setData: {
  // 是否计算 setData 传入参数的大小
  isCalculateSize: boolean = false
}

App Launch Perf

收集启动性能,并在启动完成后上报,没有额外配置项。

js
// 无需配置,默认开启,如需关闭,请设置为false
appLaunchPerf: {}

Page Perf

收集页面性能,在切换页面后且页面加载完后上报,没有额外配置项。

js
// 无需配置,默认开启,如需关闭,请设置为false
pagePerf: {}

Performance

收集单性能指标,例如:FR、FP、FCP、LCP,目前只有微信、抖音小程序的部分机型能被获取到,没有额外配置项。

js
// 无需配置,默认开启,如需关闭,请设置为false
performance: {}

Released under the MIT License.