mirror of
https://hub.gitmirror.com/https://github.com/ExamAware/ExamAware-docs
synced 2025-04-29 07:56:39 +00:00
fix: 修复了脑抽导致的问题
修复了脑抽导致的问题
This commit is contained in:
parent
7ea3cddf6e
commit
035c609634
@ -1,94 +0,0 @@
|
||||
// .vuepress/enhanceApp.js
|
||||
import * as Sentry from '@sentry/browser';
|
||||
import { Vue as VueIntegration } from '@sentry/integrations';
|
||||
import { Integrations } from '@sentry/tracing';
|
||||
|
||||
export default ({ Vue, router }) => {
|
||||
// 仅在生产环境启用 Sentry
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
// 初始化 Sentry
|
||||
Sentry.init({
|
||||
dsn: 'https://f8ab1b11ab45f86bd6c4237ba16cb5fe@o4508946125619200.ingest.de.sentry.io/4509058673606736',
|
||||
integrations: [
|
||||
// 自动捕获 Vue 组件错误
|
||||
new VueIntegration({
|
||||
Vue,
|
||||
attachProps: true, // 记录组件 props
|
||||
logErrors: false // 关闭控制台错误重复输出
|
||||
}),
|
||||
// 启用性能监控
|
||||
new Integrations.BrowserTracing({
|
||||
routingInstrumentation: Sentry.vueRouterInstrumentation(router),
|
||||
tracingOrigins: ['localhost', /^\//]
|
||||
})
|
||||
],
|
||||
environment: 'production',
|
||||
release: 'vuepress-docs@1.0.0', // 需与构建版本一致
|
||||
tracesSampleRate: 0.3, // 30%的性能数据采样
|
||||
autoSessionTracking: true, // 自动会话跟踪
|
||||
beforeSend(event) {
|
||||
// 过滤敏感信息(示例)
|
||||
if (event.request?.url) {
|
||||
event.request.url = event.request.url.replace(/password=[^&]*/, 'password=[REDACTED]');
|
||||
}
|
||||
return event;
|
||||
}
|
||||
});
|
||||
|
||||
// ================= 手动用户行为记录 =================
|
||||
|
||||
// 1. 路由导航追踪
|
||||
router.beforeEach((to, from, next) => {
|
||||
// 记录面包屑导航
|
||||
Sentry.addBreadcrumb({
|
||||
category: 'navigation',
|
||||
message: `Route change: ${from.path} → ${to.path}`,
|
||||
level: 'info'
|
||||
});
|
||||
next();
|
||||
});
|
||||
|
||||
// 2. 页面访问事件记录
|
||||
router.afterEach((to) => {
|
||||
Sentry.captureEvent({
|
||||
message: 'Page View',
|
||||
level: 'info',
|
||||
tags: {
|
||||
route: to.path,
|
||||
referrer: document.referrer || 'direct'
|
||||
},
|
||||
extra: {
|
||||
fullPath: to.fullPath,
|
||||
userAgent: navigator.userAgent
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 3. 全局错误处理器(补充)
|
||||
window.addEventListener('unhandledrejection', (event) => {
|
||||
Sentry.captureException(event.reason, {
|
||||
contexts: {
|
||||
promise: {
|
||||
rejection: event.reason?.stack || String(event.reason)
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
console.log('[Sentry] 开发模式已禁用监控');
|
||||
}
|
||||
|
||||
// ================= 扩展方法示例 =================
|
||||
// 可在 Vue 原型上添加方法供组件调用
|
||||
Vue.prototype.$trackEvent = (eventName, payload) => {
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
Sentry.captureEvent({
|
||||
message: eventName,
|
||||
level: 'info',
|
||||
contexts: {
|
||||
custom: payload
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user