♟️ Unofficial Sentry Integration for SvelteKit Cloudflare Adapter
Workaround until close @sentry/javascript #8291.
[!NOTE] If you are looking for other node-less adapters, see sentry-sveltkeit-edge.
npm i @jill64/sentry-sveltekit-cloudflare
Add the following settings to your SvelteKit application's vite.config.js
.
// vite.config.js
import { sveltekit } from '@sveltejs/kit/vite'
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [sveltekit()],
ssr: {
noExternal: ['@jill64/sentry-sveltekit-cloudflare']
}
// ...
})
// hooks.client.js
import { init } from '@jill64/sentry-sveltekit-cloudflare/client'
// or
// import { clientInit } from '@jill64/sentry-sveltekit-cloudflare'
const onError = init(
'__YOUR_SENTRY_DSN__'
// ,
// {
// sentryOptions: {
// // ... Other Sentry Config
// },
// enableInDevMode: boolean (default: false)
// }
)
export const handleError = onError((e, sentryEventId) => {
// Your Error Handler
})
// hooks.server.js
import { init } from '@jill64/sentry-sveltekit-cloudflare/server'
// or
// import { serverInit } from '@jill64/sentry-sveltekit-cloudflare'
const { onHandle, onError } = init(
'__YOUR_SENTRY_DSN__'
// ,
// {
// toucanOptions: {
// // ... Other Sentry Config
// },
// handleOptions: {
// handleUnknownRoutes: boolean (default: false)
// },
// enableInDevMode: boolean (default: false)
// }
)
export const handle = onHandle(({ event, resolve }) => {
// Your Handle Code
})
export const handleError = onError((e, sentryEventId) => {
// Your Error Handler
})
Use @sentry/vite-plugin.
// vite.config.js
import { sentryVitePlugin } from '@sentry/vite-plugin'
import { sveltekit } from '@sveltejs/kit/vite'
import { defineConfig } from 'vite'
export default defineConfig({
build: {
sourcemap: true
},
plugins: [
sentryVitePlugin({
org: process.env.SENTRY_ORG,
project: process.env.SENTRY_PROJECT,
authToken: process.env.SENTRY_AUTH_TOKEN
}),
sveltekit()
]
})