wangweianger / zanePerfor

前端性能监控系统,消息队列,高可用,集群等相关架构
Other
1.75k stars 420 forks source link

新增了使用PKG打包应用,一键部署,并且基于Vue的页面跳转特性修改了一下SDK。 #72

Closed yuxuan-ctrl closed 1 year ago

yuxuan-ctrl commented 1 year ago

您好,这次主要修改的地方有两点: 1、修改了SDK。由于我的项目是基于Vue3的项目,需求是页面跳转就记录一下PV,UV。但是在Vue里面,页面跳转的操作是通过router.push或者router.replace去实现的。我发现普通的axios的SDK监听不到,因为axios或者其他SDK监听的只有load事件,只有在页面刷新的时候才生效。所以我基于路由跳转的方式修改了一下SDK,并且重新命名web-report-vue.min.js。主要修改的地方在增加了对replaceState事件的监听,同时给该事件做了简单的防抖处理。请您过目。

2、由于部署的方式没有用到docker,所以我在寻找一种普通的打包方式,在结合网上的建议,我采用了pkg去打包。它支持对nodejs应用甚至egg框架应用进行打包,打包出来有两种形式,一种在windows运行,一种在linux环境运行,主要修改的文件在:package.json、config.default.js、新增文件build.js,但是有个缺点,就是app文件夹里面的public文件夹它并不能打包进去,这个我寻找了很多方案都没解决,目前的方案是直接把public复制进去打包后的文件夹即可,打包之后只会对生成的exe文件或者linux文件进行更新,对这些静态资源没有影响,所以复制过去是可行的。

我将zaneperfor运用到我实际的项目上了,所以做了一些自己的见解,希望您能看看,并且期盼您的回复,谢谢~

wangweianger commented 1 year ago
  1. 新增一个SDK是OK的(推荐提交这部分代码)
  2. pkg 的打包部署模式不推荐提交 (pkg打包后的文件源代码查看,排错比较困难)
  3. 若非docker模式部署,推荐使用 build模式直接部署ecs服务器
yuxuan-ctrl commented 1 year ago

@wangweianger 好的,我今晚回去整理一下SDK,整理好了提交这部分代码。pkg的打包方式的确再排错上面的确会有困难,这个待我研究一下。