{"_id":"@aligov/plugin-jsx-auto-tracker","_rev":"4-11ba5b2d8021b9e358e5cebed1672e22","name":"@aligov/plugin-jsx-auto-tracker","description":"transform comment to tracker","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aligov/plugin-jsx-auto-tracker","version":"0.1.0","author":"","license":"MIT","_id":"@aligov/plugin-jsx-auto-tracker@0.1.0","maintainers":[{"name":"shenyu.wsy","email":"shenyu.wsy@alibaba-inc.com"},{"name":"liunian","email":"dengjij@gmail.com"},{"name":"tao1991123","email":"tao360907796@gmail.com"},{"name":"itrip","email":"1198488651@qq.com"},{"name":"xiazhiqiang","email":"xiazhiqiangcuc@126.com"},{"name":"mo.zhou","email":"bjfuzm@163.com"},{"name":"guoliang.hgl","email":"guoliang.hgl@alibaba-inc.com"},{"name":"daip","email":"15858208586@163.com"},{"name":"baizhao","email":"ethan.cqw@alibaba-inc.com"}],"dist":{"shasum":"1ad55a5a46a0ab6965214594784f4aee9ef3ed48","tarball":"https://registry.npmjs.org/@aligov/plugin-jsx-auto-tracker/-/plugin-jsx-auto-tracker-0.1.0.tgz","fileCount":10,"integrity":"sha512-h4xHroAMcK82rOX+WyEuAk/a616aX1FislekYhKV+zuSpFuX24BlRtRjddIlsTaWGQcZrqwrXBoK3D23XWlahg==","signatures":[{"sig":"MEYCIQCdOoCK/I+H0H7nLIX0wgzW55CWagNUhPyVWnZzKAoj+gIhAICWTYCUkg5Egff8eoKtwCTQ4EoxLdefDSFFzmjtHgPr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJsE3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqqiQ/8D1lGL6YhYf0qfq/iKahHN7kWCogiUsDTG6du0n6dTLgwIj8c\r\nahKTpW3nYTLEcNda67Wksostat+ZqDb/z+BXpg50C1kUXmBAnilmsQRQUK0e\r\nJ+Ad0Cc+YWWQaaShQgIPmbYkjq5grkyvanXVxNlUbm17IwGsxAft9GZvHi3J\r\nMNP4Obs/AkixybBT7+yw6PPic4uTWjU/dhUzNmHIfoYCLA3Uf2T1C/sAHDJU\r\nvoLbNRDoVa61JjV3Fy+qdwobi2MxOPNbciGqTZQrG1ZyKmYpb2tRbEMwAKOS\r\nQh6Sg0fti7WsUyTNtQ6NOJzGONms1GvIotgsBvvbM1NKJ7ZBp6wQW0YTiSAF\r\niLHUPXT5FZYVTpnhMkOjpjlFkiGlDC0RwWvLAAII2MwaH8/0C0/HnoYrHS3Z\r\nBHL/DGWCi04N4dHe72bWCdo+mE2LItZ9aNWzxde2rKH1pEXBoJMT3WsFZC6k\r\nt9yrvBnaO3hCJ3HAOmT8VDvTGpgChbq5DjerzllUWCwBGrk6A8ybgNL+nknk\r\n/ECHOaiFdXELdds/9fuDGNMbbsWklM6Lwoh14mdHm+Go1tRP4etChKHNZ/GU\r\nMH9p1f8lOash/0ehUomWxDo3ruFUZJPK6yWEACv0ky72W1TVke9CSvrLCoJF\r\nOJF1uaV8OfSQYzhMe20mTFJJjulupxi+T2E=\r\n=Q0LH\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","collectCoverage":true,"coverageDirectory":"./coverage/"},"main":"lib/index.js","gitHead":"6f9d72f7ce03ac8c6dd15d861af0fd22229aeb72","private":false,"scripts":{"test":"jest","build":"rm -rf lib && tsc","start":"tsc -w","coverage":"codecov","prepublishOnly":"npm run build"},"_npmUser":{"name":"shenyu.wsy","email":"shenyu.wsy@alibaba-inc.com"},"_npmVersion":"6.14.16","description":"transform comment to tracker","directories":{},"_nodeVersion":"14.19.0","dependencies":{"ejs":"^3.1.8","lodash":"^4.17.21","js-yaml":"^4.1.0","fs-extra":"^10.1.0","@babel/helper-module-imports":"^7.18.6"},"_hasShrinkwrap":false,"originTemplate":"build-plugin-template","devDependencies":{"got":"^11.0.2","jest":"^25.4.0","ts-jest":"^25.4.0","webpack":"^5.0.0","@types/ejs":"^3.1.1","typescript":"^4.7.4","@babel/core":"^7.18.10","@types/jest":"^25.2.1","@babel/types":"^7.18.10","@types/lodash":"^4.14.182","build-scripts":"^1.0.0","webpack-chain":"^6.4.0","@types/js-yaml":"^4.0.5","@babel/traverse":"^7.18.11","@types/fs-extra":"^8.1.0","webpack-dev-server":"^4.0.0","@types/webpack-chain":"^5.2.0","@types/webpack-dev-server":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-jsx-auto-tracker_0.1.0_1663484215672_0.5667247502897474","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-09-18T06:56:55.611Z","modified":"2024-07-04T09:20:02.163Z","0.1.0":"2022-09-18T06:56:55.916Z"},"maintainers":[{"email":"wanyi.css@alibaba-inc.com","name":"wanyi.css"},{"email":"17682318001@163.com","name":"jasoncapricorn"},{"email":"chris_jun@aliyun.com","name":"qingkaili"},{"email":"hgxjyh@163.com","name":"huguoxin"},{"email":"shenyu.wsy@alibaba-inc.com","name":"shenyu.wsy"},{"email":"dengjij@gmail.com","name":"liunian"},{"email":"tao360907796@gmail.com","name":"tao1991123"},{"email":"1198488651@qq.com","name":"itrip"},{"email":"xiazhiqiangcuc@126.com","name":"xiazhiqiang"},{"email":"bjfuzm@163.com","name":"mo.zhou"},{"email":"guoliang.hgl@alibaba-inc.com","name":"guoliang.hgl"},{"email":"15858208586@163.com","name":"daip"},{"email":"ethan.cqw@gmail.com","name":"baizhao"}],"license":"MIT","readme":"# @aligov/plugin-jsx-auto-tracker\n\nice 体系插件，解析 jsx 语法，依据注释注入配置好的埋点方法。\n\n## Usage\n\n```bash\n$ npm i @aligov/plugin-jsx-auto-tracker --save\n```\n\n## step 1\n\n在 ice 体系的配置中添加本插件\n\n```json\n{\n  \"plugins\": [\n    [\n      \"@aligov/plugin-jsx-auto-tracker\",\n      {\n        \"registerModulePath\": \"./src/utils/registerAplus\"\n      }\n    ]\n  ]\n}\n```\n\n参数说明\n| 参数名 | 类型 | 必填 | 说明 |\n| --------------- | -------------- | ---- | -------------------------------------------------- |\n| registerModulePath | string | 是 | 埋点初始化方法 |\n| entryImportPath | string | 否 | 埋点是否在入口处注入 |\n\n## step 2\n\n编写`registerModulePath`。它应当返回\n\n```typescript\nexport default {\n  register: function () {\n    return { click: function () {}, request: function () {} };\n  },\n};\n```\n\n## step 3\n\n代码中插入注释。\n\n用法一\n```jsx\nreturn (\n  <Checkbox\n    /* @tracker-click({eventCode: /recept.authconfirm.checked, checked: $0}) */\n    onChange={(isChecked) => (isChecked ? setType('primary') : setType('secondary'))}\n    className={styles.check}\n  ></Checkbox>\n);\n```\n\n以类似注解注释的方法，为 jsx 属性注入埋点代码。关键字为`@tracker-type()`，`type`是 step2 中注册的方法。其相关参数以 JSON 对象进行解析，`$0`代表原始代码中函数的第一个入参。\n\n用法二\n```jsx\nhandleSingleMaterialUpload = (res: { url imgUrl }, attaName) => {\n  const { onSuccess, item, fileList } = this.props;\n  const newMaterial = rebuildUpload({\n    ...res,\n    attaName,\n    attaUrl: res.url,\n  });\n  /**\n   * tracker: inject\n   * type: request\n   * args:\n   *  eventCode: /recept.materials.upload\n   *  operation: input_upload\n   *  materialCode: $item.materialCode\n   *  result: success\n   */\n  onSuccess(item, newMaterial, fileList.length);\n};\n```\n\n插件会解析`tracker: inject`关键字，并以 yaml 语法解析参数。`type`中的方法，是处理该埋点的方法，在 step2 中注册；args 是传入埋点处理方法的各个参数。\n","readmeFilename":"README.md"}