Official Sentry SDK for Svelte

This SDK currently only supports Svelte apps in the browser. If you're using SvelteKit, we
recommend using our dedicated
Sentry SvelteKit SDK.
General
This package is a wrapper around @sentry/browser
, providing error monitoring and basic performance monitoring features
for Svelte.
To use the SDK, initialize Sentry in your Svelte entry point main.js
before you bootstrap your Svelte app:
import App from './App.svelte';
import * as Sentry from '@sentry/svelte';
Sentry.init({
dsn: '__DSN__',
release: 'my-project-name@2.3.12',
integrations: [Sentry.browserTracingIntegration()],
tracesSampleRate: 1.0,
});
const app = new App({
target: document.getElementById('app'),
});
export default app;
The Sentry Svelte SDK supports all features from the @sentry/browser
SDK. Until it becomes more stable, please refer
to the Sentry Browser SDK documentation for more information and usage
instructions.
Sourcemaps and Releases
To generate source maps of your Svelte app bundle, check our guide
how to configure your bundler to
emit source maps.
To create releases and upload source maps to
Sentry, we recommend using sentry-cli
. You can for instance create a bash
script to take care of creating a release, uploading source maps and finalizing the release:
#!/bin/bash
VERSION=<your version>
ORG=<your org-slug>
PROJECT=<your project-slug>
SOURCEMAPS_PATH=./dist
sentry-cli releases new $VERSION --org $ORG --project $PROJECT
sentry-cli releases files $VERSION upload-sourcemaps $SOURCEMAPS_PATH --org $ORG --project $PROJECT
sentry-cli releases finalize $VERSION --org $ORG --project $PROJECT
Please note that the paths provided in this example work for a typical Svelte project that adheres to the project
structure set by create-vite with the svelte(-ts)
template. If your
project setup differs from this template, your configuration may need adjustments. Please refer to our documentation of
Advanced sentry-cli
Sourcemaps Options and to
our Sourcemaps Troubleshooting Guide.
Check out our
Svelte source maps uploading guide
for more information.
9.36.0
Important Changes
- feat(node-core): Add node-core SDK (#16745)
This release adds a new SDK @sentry/node-core
which ships without any OpenTelemetry instrumententation out of the box. All OpenTelemetry dependencies are peer dependencies and OpenTelemetry has to be set up manually.
Use @sentry/node-core
when:
- You already have OpenTelemetry set up
- You need custom OpenTelemetry configuration
- You want minimal dependencies
- You need fine-grained control over instrumentation
Use @sentry/node
when:
- You want an automatic setup
- You're new to OpenTelemetry
- You want sensible defaults
- You prefer convenience over control
- feat(node): Deprecate ANR integration (#16832)
The ANR integration has been deprecated and will be removed in future versions. Use eventLoopBlockIntegration
from @sentry/node-native
instead.
- feat(replay): Add
_experiments.ignoreMutations
option (#16816)
This replay option allows to configure a selector list of elements to not capture mutations for.
Sentry.replayIntegration({
_experiments: {
ignoreMutations: ['.dragging'],
},
});
Other changes
- feat(deps): bump @prisma/instrumentation from 6.10.1 to 6.11.1 (#16833)
- feat(nextjs): Add flag for suppressing router transition warning (#16823)
- feat(nextjs): Automatically skip middleware requests for tunnel route (#16812)
- feat(replay): Export compression worker from
@sentry/replay-internal
(#16794)
- fix(browser): Avoid 4xx response for succesful
diagnoseSdkConnectivity
request (#16840)
- fix(browser): Guard against undefined nextHopProtocol (#16806)
- fix(cloudflare): calculate retries not attempts (#16834)
- fix(nuxt): Parametrize routes on the server-side (#16785)
- fix(vue): Make pageload span handling more reliable (#16799)
Work in this release was contributed by @Spice-King and @stayallive. Thank you for your contributions!