sentry中如何配置sourcemap

目前业务开发中有个痛点,就是有时业务上会报错页面显示有问题,但是复现起来却很困难,这就对查找定位bug带来了不小的挑战。而解决这一痛点的办法就是搭建一套前端页面的监控系统,对页面上报的错误即时上报。

根据网上的一些资料,我们最终选择了sentry。sentry本身是开源并且免费的,但是如果需要使用官方搭建好的sentry平台则会收取一定费用。我们选择在自己的服务器上搭建,以规避这个问题;

关于sentry的安装,可以使用docker或者python进行安装,个人推荐使用docker。具体步骤官方文档(https://docs.sentry.io/server/installation/docker/)上说的很清楚,主要是按照github上https://github.com/getsentry/onpremise 这个库的说明,使用docker一步一步安装即可。安装过程中会提示你输入管理员账号和密码,这个会在你搭建完成登录的时候使用到。

阅读全文

关于Typescript-泛型的概念与理解

一. 泛型是什么

泛型就是用一个东西表示“广泛”的类型。

举例如下:returnIt函数的作用是给什么返回什么

1
2
3
4
5
6

function returnIt<T>(arg: T): T{
return arg;
}

let s = returnIt<string>('hi')

如果用any来写的话,无法确保参数类型和返回值类型相同

二. 泛型的使用

泛型数组
1
2
3
4
5
6
7
8

function returnIt<T>(array:T[]):T[]{
return array.concat(array);
}

returnIt([1,2,3])

returnIt<number>([1,2,3])

阅读全文

关于Typescript:jQuery声明文件的主要结构

声明文件是Typescript学习中的一个难点,而网上的资料又少之又少。jQuery作为一个使用频率极高的库,学会它的声明文件的写法,则很容易做到触类旁通。

第一步.

对于$("#app")$(function(){})这种写法,$是作为一个函数存在的,因此声明文件写法如下:

1
2
3
4
5

//动态方法
declare function $(cb:Function):void

declare function $(selector:string):void

为了能够链式调用,添加$函数的返回值类型

1
2
3
4
5
6
7
8
9
10
//动态方法
declare function $(cb:Function):void

declare function $(selector:string):jQueryElement


interface jQueryElement{
html(content : string): jQueryElement
css(content : string) : jQueryElement
}

阅读全文