{"_id":"@94ai/arms","_rev":"2-e88346aded35e416d570da5a170ad8a0","name":"@94ai/arms","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.4":{"name":"@94ai/arms","version":"1.0.4","description":"arms、fs、oss、日志监控","main":"lib/arms.cjs.min.js","module":"lib/arms.esm-bundler.min.js","type":"module","types":"lib/index.d.ts","scripts":{"build":"rollup -c","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://gitee.com/xccjh/ali-arms.git"},"publishConfig":{"access":"public"},"keywords":["arms、fs、oss、日志监控"],"author":{"name":"xccjh"},"license":"ISC","dependencies":{"@babel/runtime-corejs3":"^7.21.0","alife-logger":"^1.8.30","error-stack-parser":"^2.1.4"},"peerDependencies":{"@babel/runtime-corejs3":"^7.21.0","alife-logger":"^1.8.30","error-stack-parser":"^2.1.4"},"devDependencies":{"@babel/core":"^7.21.4","@babel/plugin-transform-runtime":"^7.21.4","@babel/preset-env":"^7.21.4","@babel/runtime-corejs3":"^7.21.0","@rollup/plugin-babel":"^6.0.3","@types/semver-utils":"^1.1.1","eslint-define-config":"^1.16.0","rollup":"^3.18.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.3.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-terser":"^7.0.2","rollup-plugin-typescript2":"^0.34.1","typescript":"^4.9.5"},"babel":{"presets":[["@babel/env",{"modules":false}]],"plugins":[["@babel/plugin-transform-runtime",{"corejs":{"version":3,"proposals":true},"useESModules":true}]]},"gitHead":"c14be991ebc186e8651cf804f9cc0218f3e5ec75","_id":"@94ai/arms@1.0.4","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-mMPeL7bTuzHzBH9Xv0hgYN/wyKU9KzHlBEDwiICsXDpf8NeAJO393tJ69uWNRlifgOO2e99t8s61bhf/zucgww==","shasum":"bb8c71c92433900f271918395524513fe6418289","tarball":"https://registry.npmjs.org/@94ai/arms/-/arms-1.0.4.tgz","fileCount":17,"unpackedSize":38548,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdP+51cDFm930QUl3y5rsBVv9d/eF4jrDhO0qbEwGsFgIgFtbR3AjZ8j0k53c0095To2KCPxbksE9cnhHdFig/B3w="}]},"_npmUser":{"name":"94ai","email":"zjh15018707394@gmail.com"},"directories":{},"maintainers":[{"name":"94ai","email":"zjh15018707394@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/arms_1.0.4_1690179572563_0.23045271835103387"},"_hasShrinkwrap":false}},"time":{"created":"2023-07-24T06:19:32.475Z","1.0.4":"2023-07-24T06:19:32.720Z","modified":"2024-05-24T09:10:44.183Z"},"maintainers":[{"email":"liuxiangxiang1992@gmail.com","name":"louislxx"},{"email":"zjh15018707394@gmail.com","name":"nfai"}],"description":"arms、fs、oss、日志监控","keywords":["arms、fs、oss、日志监控"],"repository":{"type":"git","url":"https://gitee.com/xccjh/ali-arms.git"},"author":{"name":"xccjh"},"license":"ISC","readme":"## 前言\r\n通用前端监控工具,arms寓意为武器。\r\n\r\n> 阿里arms的api未能自动上报前端js错误，不带js错误分析集成(自行解析错误堆栈)，不能自动上传souceMap，需要对接上传和解析\r\n> \r\n> 本工具定义为前端监控工具包，目的为多项目公用和后续可扩展为多个错误收集源等。功能包括:\r\n> 1. 捕获拦截【全局错误自定义追踪】\r\n> 2. 功能扩展【open api封装扩展】\r\n> 3. 错误自定义上报【区分环境版本，错误堆栈解析和主动上报】\r\n> 4. 分析对接【sourceMap自动上传和分析接入】\r\n\r\n## 特性\r\n1. 前端js错误捕获追踪自动上报（全局错误拦截）\r\n2. 堆栈解析上报（借助[error-stack-parser](https://www.npmjs.com/package/error-stack-parser)）\r\n3. sourceMap自动上传（配合[@xccjh/rt-cli](https://www.npmjs.com/package/@xccjh/rt-cli)或[@xccjh/rt-core](https://www.npmjs.com/package/@xccjh/rt-core)）\r\n\r\n> 目前错误上报源只有[阿里arms](https://help.aliyun.com/document_detail/58652.html?spm=a2c4g.58655.0.0.60973f291n1ker)\r\n\r\n## 安装\r\n```shell\r\n$ yarn add @xccjh/arms\r\n```\r\n\r\n## 配置arms默认实例\r\n### 创建一个管理类做单例管理\r\n```shell\r\n// @/utils/alife.js\r\nimport store from '@/store'\r\nimport envProcess from '@/utils/env'\r\nimport { AliArmsManager } from '@xccjh/arms'\r\nimport packageJson from '/package.json'\r\n\r\nexport class AliArms {\r\n  static #getAliArms\r\n  static initAliArms() {\r\n    this.#getAliArms = new AliArmsManager({\r\n      uid: store.getters?.curUser?.uid,\r\n      pid: 'xxxx', // 👈 这是应用pid\r\n      appType: 'web',\r\n      imgUrl: 'https://arms-retcode.aliyuncs.com/r.png?',\r\n      sendResource: true,\r\n      enableLinkTrace: true,\r\n      behavior: true,\r\n      useFmp: true,\r\n      enableSPA: true,\r\n      release: packageJson.version,\r\n      environment: {\r\n        sit: 'local',\r\n        test: 'daily',\r\n        prod: 'prod',\r\n        gray: 'gray'\r\n      }[envProcess.env.ENV_CONFIG]\r\n    })\r\n    return this.#getAliArms\r\n  }\r\n  static getAliArms() {\r\n    return this.#getAliArms ?? this.initAliArms()\r\n  }\r\n  static errReport(err) {\r\n    AliArms.getAliArms().errReport(err)\r\n  }\r\n}\r\n```\r\n### 初始化全局错误监听\r\n```js\r\n// @/main.js\r\nimport { AliArms } from '@/utils/alife'\r\n\r\nAliArms.initAliArms() // 👈 全局js错误自动上报\r\n```\r\n### 在框架全局错误钩子或抛错处自行上报\r\n```js\r\n// @/errorLog.js\r\nimport { AliArms } from '@/utils/alife'\r\n\r\nVue.config.errorHandler = function(err, vm, info, a) {\r\n  AliArms.errReport(err) // 👈 手动上报\r\n}\r\n```\r\n\r\n## 后续\r\n新增api链路追踪对接\r\n","readmeFilename":"README.md"}