diff --git a/package-lock.json b/package-lock.json index 6db890a..21389ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.0.0", "dependencies": { "@primer/css": "^22.1.0", + "@sentry/vue": "^10.42.0", "@tsparticles/slim": "^3.9.1", "@tsparticles/vue3": "^3.0.1", "axios": "^1.13.2", @@ -1417,6 +1418,107 @@ "win32" ] }, + "node_modules/@sentry-internal/browser-utils": { + "version": "10.42.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.42.0.tgz", + "integrity": "sha512-HCEICKvepxN4/6NYfnMMMlppcSwIEwtS66X6d1/mwaHdi2ivw0uGl52p7Nfhda/lIJArbrkWprxl0WcjZajhQA==", + "license": "MIT", + "dependencies": { + "@sentry/core": "10.42.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/feedback": { + "version": "10.42.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.42.0.tgz", + "integrity": "sha512-lpPcHsog10MVYFTWE0Pf8vQRqQWwZHJpkVl2FEb9/HDdHFyTBUhCVoWo1KyKaG7GJl9AVKMAg7bp9SSNArhFNQ==", + "license": "MIT", + "dependencies": { + "@sentry/core": "10.42.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/replay": { + "version": "10.42.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.42.0.tgz", + "integrity": "sha512-Zh3EoaH39x2lqVY1YyVB2vJEyCIrT+YLUQxYl1yvP0MJgLxaR6akVjkgxbSUJahan4cX5DxpZiEHfzdlWnYPyQ==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "10.42.0", + "@sentry/core": "10.42.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/replay-canvas": { + "version": "10.42.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.42.0.tgz", + "integrity": "sha512-am3m1Fj8ihoPfoYo41Qq4KeCAAICn4bySso8Oepu9dMNe9Lcnsf+reMRS2qxTPg3pZDc4JEMOcLyNCcgnAfrHw==", + "license": "MIT", + "dependencies": { + "@sentry-internal/replay": "10.42.0", + "@sentry/core": "10.42.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/browser": { + "version": "10.42.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.42.0.tgz", + "integrity": "sha512-iXxYjXNEBwY1MH4lDSDZZUNjzPJDK7/YLwVIJq/3iBYpIQVIhaJsoJnf3clx9+NfJ8QFKyKfcvgae61zm+hgTA==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "10.42.0", + "@sentry-internal/feedback": "10.42.0", + "@sentry-internal/replay": "10.42.0", + "@sentry-internal/replay-canvas": "10.42.0", + "@sentry/core": "10.42.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/core": { + "version": "10.42.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.42.0.tgz", + "integrity": "sha512-L4rMrXMqUKBanpjpMT+TuAVk6xAijz6AWM6RiEYpohAr7SGcCEc1/T0+Ep1eLV8+pwWacfU27OvELIyNeOnGzA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/vue": { + "version": "10.42.0", + "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-10.42.0.tgz", + "integrity": "sha512-D6mYt6zRV1YXMZ8xmGKXzb0VHSLANUxpDAC3tfCeRYZ9P0MEHlNI6aapvjiNAh+0Vi9bOaHIUkzpatbE1gWhOg==", + "license": "MIT", + "dependencies": { + "@sentry/browser": "10.42.0", + "@sentry/core": "10.42.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@tanstack/vue-router": "^1.64.0", + "pinia": "2.x || 3.x", + "vue": "2.x || 3.x" + }, + "peerDependenciesMeta": { + "@tanstack/vue-router": { + "optional": true + }, + "pinia": { + "optional": true + } + } + }, "node_modules/@tsparticles/basic": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/@tsparticles/basic/-/basic-3.9.1.tgz", diff --git a/package.json b/package.json index 8bcf422..f790054 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "@primer/css": "^22.1.0", + "@sentry/vue": "^10.42.0", "@tsparticles/slim": "^3.9.1", "@tsparticles/vue3": "^3.0.1", "axios": "^1.13.2", diff --git a/src/main.ts b/src/main.ts index 2399156..30ba1db 100644 --- a/src/main.ts +++ b/src/main.ts @@ -4,18 +4,29 @@ import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' import 'element-plus/theme-chalk/dark/css-vars.css' import '@/styles/index.scss' - +import '@/router/permission' import App from './App.vue' import router from './router' import { useThemeStore } from './stores/theme' import Particles from '@tsparticles/vue3' import { loadSlim } from '@tsparticles/slim' import type { Engine } from '@tsparticles/engine' - +import * as Sentry from "@sentry/vue"; const app = createApp(App) const pinia = createPinia() +Sentry.init({ + app, + dsn: "https://2e38c08821de95d002b6e6253d3cd599@o4507525750521856.ingest.us.sentry.io/4511014276169728", + // Setting this option to true will send default PII data to Sentry. + // For example, automatic IP address collection on events + sendDefaultPii: true, + integrations: [Sentry.browserTracingIntegration()], + tracesSampleRate: 0.2, + tracePropagationTargets: ["localhost", "https://htserver.wdg.cloudns.ch/"], +}); + app.use(pinia) app.use(router) app.use(ElementPlus) @@ -24,7 +35,6 @@ app.use(Particles, { await loadSlim(engine) } }) -import '@/router/permission' // 初始化主题 const themeStore = useThemeStore(pinia)