feat:集成Sentry
This commit is contained in:
91
package-lock.json
generated
91
package-lock.json
generated
@@ -11,6 +11,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@element-plus/icons-vue": "^2.0.10",
|
"@element-plus/icons-vue": "^2.0.10",
|
||||||
"@msgpack/msgpack": "^3.1.2",
|
"@msgpack/msgpack": "^3.1.2",
|
||||||
|
"@sentry/vue": "^10.20.0",
|
||||||
"@vueuse/core": "^9.5.0",
|
"@vueuse/core": "^9.5.0",
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.21",
|
||||||
"axios": "^0.27.2",
|
"axios": "^0.27.2",
|
||||||
@@ -947,6 +948,96 @@
|
|||||||
"win32"
|
"win32"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"node_modules/@sentry-internal/browser-utils": {
|
||||||
|
"version": "10.20.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@sentry-internal/browser-utils/-/browser-utils-10.20.0.tgz",
|
||||||
|
"integrity": "sha512-9+NybrYs+dEM2iW5uRAYEhKkNK0XhDea5jovtDUXEvdSCMJFcdR88uztkftnCur45/hpvbgSULsGPUdHPb5ITw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@sentry/core": "10.20.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@sentry-internal/feedback": {
|
||||||
|
"version": "10.20.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@sentry-internal/feedback/-/feedback-10.20.0.tgz",
|
||||||
|
"integrity": "sha512-R/eGLKl7WDccLKBorEbyTsy5b99w/k4v80SntE8HL2rsO7DCDXma8TGmtHd+iZnw8dUci+EVrw7LbeGSgf3QzA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@sentry/core": "10.20.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@sentry-internal/replay": {
|
||||||
|
"version": "10.20.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@sentry-internal/replay/-/replay-10.20.0.tgz",
|
||||||
|
"integrity": "sha512-+XPYp0CuJnf+c36/c+hHrY6wAPHCdnqllZeyU7+9LAiKsdhN8Oo4eF1v5zd097qDZBg1NrKhU44ScJIzz+vygw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@sentry-internal/browser-utils": "10.20.0",
|
||||||
|
"@sentry/core": "10.20.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@sentry-internal/replay-canvas": {
|
||||||
|
"version": "10.20.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@sentry-internal/replay-canvas/-/replay-canvas-10.20.0.tgz",
|
||||||
|
"integrity": "sha512-8DBawFi4F4e2Cu2ToiitCnYsK8idrDOv66Vq+N6c8e3qFitTTuoPQwOihb2+HY4CB06ABPW3WvfZntJJmsf91w==",
|
||||||
|
"dependencies": {
|
||||||
|
"@sentry-internal/replay": "10.20.0",
|
||||||
|
"@sentry/core": "10.20.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@sentry/browser": {
|
||||||
|
"version": "10.20.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@sentry/browser/-/browser-10.20.0.tgz",
|
||||||
|
"integrity": "sha512-zcf8HwFiRbzjZL9KbLev44eEOf+yl+3svQbs2BlR2KAYGaB10swV5abij0UTTGO7ClnqUZdcGpwiyyfPS6mjHg==",
|
||||||
|
"dependencies": {
|
||||||
|
"@sentry-internal/browser-utils": "10.20.0",
|
||||||
|
"@sentry-internal/feedback": "10.20.0",
|
||||||
|
"@sentry-internal/replay": "10.20.0",
|
||||||
|
"@sentry-internal/replay-canvas": "10.20.0",
|
||||||
|
"@sentry/core": "10.20.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@sentry/core": {
|
||||||
|
"version": "10.20.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@sentry/core/-/core-10.20.0.tgz",
|
||||||
|
"integrity": "sha512-S291KihnOIB8i7mVJIJBVHBMcCfIoY/KDJBHEfBoHY9M56g2An4FVhM9+/xR85+IoMkTySdXN08k9LEyQz4FpQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@sentry/vue": {
|
||||||
|
"version": "10.20.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@sentry/vue/-/vue-10.20.0.tgz",
|
||||||
|
"integrity": "sha512-3mWc81mLs1CpXrihuTQNXwt0HfOIy7BAZMvtYgaTuIDvooYtBbsZ+7yGDkcwsWBtfAvE7/yP2h95M4HRIw5KyQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@sentry/browser": "10.20.0",
|
||||||
|
"@sentry/core": "10.20.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"pinia": "2.x || 3.x",
|
||||||
|
"vue": "2.x || 3.x"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"pinia": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@trysound/sax": {
|
"node_modules/@trysound/sax": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz",
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@element-plus/icons-vue": "^2.0.10",
|
"@element-plus/icons-vue": "^2.0.10",
|
||||||
"@msgpack/msgpack": "^3.1.2",
|
"@msgpack/msgpack": "^3.1.2",
|
||||||
|
"@sentry/vue": "^10.20.0",
|
||||||
"@vueuse/core": "^9.5.0",
|
"@vueuse/core": "^9.5.0",
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.21",
|
||||||
"axios": "^0.27.2",
|
"axios": "^0.27.2",
|
||||||
|
|||||||
27
src/main.js
27
src/main.js
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
import { createApp } from 'vue'
|
import { createApp } from 'vue'
|
||||||
import { createPinia } from 'pinia'
|
import { createPinia } from 'pinia'
|
||||||
|
import * as Sentry from '@sentry/vue';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
deepClone
|
deepClone
|
||||||
@@ -20,6 +20,31 @@ import router from './router'
|
|||||||
const pinia = createPinia()
|
const pinia = createPinia()
|
||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
|
|
||||||
|
Sentry.init({
|
||||||
|
app,
|
||||||
|
dsn: 'https://34a0d76174a64db09d31d13a8042560b@sentry.cnsdt.com/2', // 替换为你的 DSN
|
||||||
|
integrations: [
|
||||||
|
// 浏览器性能追踪集成
|
||||||
|
Sentry.browserTracingIntegration({
|
||||||
|
router,
|
||||||
|
}),
|
||||||
|
// 会话回放集成
|
||||||
|
Sentry.replayIntegration({
|
||||||
|
maskAllText: false,
|
||||||
|
blockAllMedia: false,
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
// 性能监控采样率
|
||||||
|
tracesSampleRate: 1.0, // 生产环境建议设置为 0.1-0.2
|
||||||
|
// 会话回放采样率
|
||||||
|
replaysSessionSampleRate: 0.1,
|
||||||
|
replaysOnErrorSampleRate: 1.0,
|
||||||
|
// 环境配置
|
||||||
|
environment: import.meta.env.MODE,
|
||||||
|
// 开发环境下可禁用 Sentry
|
||||||
|
enabled: import.meta.env.PROD,
|
||||||
|
});
|
||||||
|
|
||||||
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
||||||
app.component(key, component)
|
app.component(key, component)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { fileURLToPath, URL } from 'node:url'
|
|||||||
import path from "path";
|
import path from "path";
|
||||||
import { defineConfig ,loadEnv} from 'vite'
|
import { defineConfig ,loadEnv} from 'vite'
|
||||||
import vue from '@vitejs/plugin-vue'
|
import vue from '@vitejs/plugin-vue'
|
||||||
import createVitePlugins from './vite/plugins/index.js'
|
import createVitePlugins from './vite/plugins/index.js'
|
||||||
|
|
||||||
// https://vite.dev/config/
|
// https://vite.dev/config/
|
||||||
export default defineConfig(({ mode, command }) => {
|
export default defineConfig(({ mode, command }) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user