bw-frontend-sdk 1.1.7 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +25 -16
  2. package/package.json +5 -10
package/README.md CHANGED
@@ -20,7 +20,7 @@
20
20
  npm install bw-frontend-sdk
21
21
  ```
22
22
 
23
- **注意**: 本SDK使用axios进行所有HTTP请求,会自动安装axios依赖。
23
+ **注意**: 本SDK优先使用 `sendBeacon` API 发送HTTP请求(性能更好、异步非阻塞),`axios` 仅作为候补方案(当 `sendBeacon` 不可用、失败或数据过大时使用)。SDK 会自动安装 axios 依赖作为候补。
24
24
 
25
25
  ## 快速开始
26
26
 
@@ -505,38 +505,47 @@ npm run build
505
505
  npm run dev
506
506
  ```
507
507
 
508
- ## Axios集成
508
+ ## 数据上报机制
509
509
 
510
- SDK默认使用axios进行所有HTTP请求,包括:
510
+ SDK 采用智能上报策略,优先使用现代浏览器 API,自动降级保证兼容性:
511
511
 
512
- 1. **数据上报**: 自动使用axios发送数据到后端
513
- 2. **性能监控**: 自动监控所有axios请求的性能
514
- 3. **错误处理**: 统一的axios错误处理机制
512
+ ### 上报优先级
515
513
 
516
- ### 使用内置axios实例
514
+ 1. **sendBeacon(主要方式)**
515
+ - ✅ 异步非阻塞,不影响页面性能
516
+ - ✅ 页面卸载时仍能可靠发送(重要数据不丢失)
517
+ - ✅ 性能更好,不占用主线程
518
+ - ✅ 自动处理,无需额外配置
519
+ - ⚠️ 数据大小限制约 60KB(超过时自动使用 axios)
520
+
521
+ 2. **axios(候补方案)**
522
+ - 🔄 当 `sendBeacon` 不可用、失败或数据过大时自动使用
523
+ - 🔄 支持更大的数据量
524
+ - 🔄 兼容所有浏览器环境
525
+
526
+ ### 自动降级策略
517
527
 
518
528
  ```javascript
519
- // SDK会自动使用axios进行所有网络请求
529
+ // SDK 会自动选择最佳上报方式
520
530
  const sdk = new FrontendSDK({
521
531
  reportUrl: 'https://your-api.com/report'
522
532
  })
523
533
 
524
- // 数据会自动通过axios上报
534
+ // 优先尝试 sendBeacon,失败或不可用时自动使用 axios
525
535
  sdk.reportEvent('user_action', { action: 'click' })
526
536
  ```
527
537
 
528
- ### 使用自定义axios配置
538
+ ### 使用自定义 axios 配置(仅候补场景)
539
+
540
+ 当 SDK 使用 axios 作为候补方案时,可以使用自定义配置:
529
541
 
530
542
  ```javascript
531
- // 如果需要自定义axios配置,可以导入axios实例
532
- import axiosInstance from './axios-config'
543
+ // 导入 axios 实例(仅在 axios 作为候补时使用)
544
+ import axiosInstance from 'bw-frontend-sdk/axios-config'
533
545
 
534
- // 自定义配置
546
+ // 自定义配置(仅在 axios 作为候补时生效)
535
547
  axiosInstance.defaults.baseURL = 'https://api.example.com'
536
548
  axiosInstance.defaults.timeout = 15000
537
-
538
- // 发送请求
539
- const response = await axiosInstance.post('/api/data', { key: 'value' })
540
549
  ```
541
550
 
542
551
  ## 相关文档
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bw-frontend-sdk",
3
- "version": "1.1.7",
4
- "description": "前端异常拦截和业务埋点 SDK,使用axios进行HTTP请求",
3
+ "version": "1.1.8",
4
+ "description": "前端异常拦截和业务埋点 SDK",
5
5
  "engines": {
6
6
  "node": ">=12.0.0"
7
7
  },
@@ -39,15 +39,10 @@
39
39
  "rollup-plugin-terser": "^7.0.0"
40
40
  },
41
41
  "dependencies": {
42
- "axios": ">=1.11.0 <2.0.0",
43
- "ua-parser-js": ">=2.0.6 <3.0.0"
42
+ "axios": "^1.11.0",
43
+ "ua-parser-js": "^2.0.6"
44
44
  },
45
45
  "peerDependencies": {
46
- "vue": ">=3.0.0 <4.0.0"
47
- },
48
- "peerDependenciesMeta": {
49
- "vue": {
50
- "optional": false
51
- }
46
+ "vue": "^3.0.0"
52
47
  }
53
48
  }