import { createApp } from 'vue'; import * as Sentry from '@sentry/vue'; import { VueQueryPlugin } from '@tanstack/vue-query'; import * as VtjCharts from '@vtj/charts'; import { IconsPlugin } from '@vtj/icons'; import * as VtjUI from '@vtj/ui'; import Antd from 'ant-design-vue'; import ElementPlus from 'element-plus'; import App from './App.vue'; import 'element-plus/dist/index.css'; import '@vtj/ui/dist/style.css'; import './style.css'; const app = createApp(App); Sentry.init({ app, dsn: 'https://5bcf1344794fea64fc5e5fe7da4821c1@o4508962650783744.ingest.de.sentry.io/4508962653143120', integrations: [ // 异常路径回放 // Sentry.replayIntegration(), // 异常端信息追踪 // Sentry.browserTracingIntegration(), ], // Session Replay // replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production. // replaysOnErrorSampleRate: 1, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur. }); // 批量注册组件 Object.entries(VtjUI).forEach(([name, component]) => { app.component(name, component); }); Object.entries(VtjCharts).forEach(([name, component]) => { app.component(name, component); }); app .use(Antd) .use(ElementPlus) .use(IconsPlugin) .use(VueQueryPlugin) .mount('#y-code-renderer');