Skip to content

Commit 4f70f75

Browse files
authored
fix(sveltekit)!: Move sentrySvelteKit off the runtime entry to @sentry/sveltekit/vite (#23247)
Moves the `sentrySvelteKit` Vite plugin off the main `@sentry/sveltekit` entry and behind a dedicated `@sentry/sveltekit/vite` subpath export. This matches the layout `@sentry/solidstart` and `@sentry/tanstackstart-react` already use. This is a breaking change to the public API, so I added an entry into the v11 migration guide. closes #23243
1 parent b65fad9 commit 4f70f75

12 files changed

Lines changed: 30 additions & 10 deletions

File tree

‎MIGRATION.md‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -984,7 +984,23 @@ Sentry.init({
984984
985985
The same applies when looking the integration up by name, e.g. via `client.getIntegrationByName('OtlpIntegration')`.
986986
987-
## 6. Type Changes
987+
### `sentrySvelteKit` moved to the `@sentry/sveltekit/vite` subpath export
988+
989+
Affected SDKs: `@sentry/sveltekit`.
990+
991+
The `sentrySvelteKit` Vite plugin is no longer re-exported from the main `@sentry/sveltekit` entry. Import it from `@sentry/sveltekit/vite` in your `vite.config.ts` instead:
992+
993+
```ts
994+
// vite.config.ts
995+
996+
// before
997+
import { sentrySvelteKit } from '@sentry/sveltekit';
998+
999+
// after
1000+
import { sentrySvelteKit } from '@sentry/sveltekit/vite';
1001+
```
1002+
1003+
The main entry re-exported the build plugin statically, which pulled the whole build-time module graph (`@sentry/vite-plugin`, and through it `@babel/core`) into the server runtime graph whenever the SDK was imported in server code. Serverless bundlers that trace by reachability (e.g. `@vercel/nft`) then copied all of it into the function. Moving the plugin behind its own subpath keeps it off the runtime entry so it is never reachable from server code.
9881004
9891005
- Several public types that used `any` now use `unknown` — including `StackFrame`, `SamplingContext`,
9901006
`SentryError`, and `User`. You may need to narrow types explicitly where you previously relied on

‎dev-packages/e2e-tests/test-applications/sveltekit-2-kit-tracing/vite.config.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { sentrySvelteKit } from '@sentry/sveltekit';
1+
import { sentrySvelteKit } from '@sentry/sveltekit/vite';
22
import { sveltekit } from '@sveltejs/kit/vite';
33
import { defineConfig } from 'vite';
44

‎dev-packages/e2e-tests/test-applications/sveltekit-2-orchestrion/vite.config.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { sentrySvelteKit } from '@sentry/sveltekit';
1+
import { sentrySvelteKit } from '@sentry/sveltekit/vite';
22
import { sveltekit } from '@sveltejs/kit/vite';
33
import { defineConfig } from 'vite';
44

‎dev-packages/e2e-tests/test-applications/sveltekit-2-svelte-5/vite.config.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { sentrySvelteKit } from '@sentry/sveltekit';
1+
import { sentrySvelteKit } from '@sentry/sveltekit/vite';
22
import { sveltekit } from '@sveltejs/kit/vite';
33
import { defineConfig } from 'vite';
44

‎dev-packages/e2e-tests/test-applications/sveltekit-2.5.0-twp/vite.config.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { sentrySvelteKit } from '@sentry/sveltekit';
1+
import { sentrySvelteKit } from '@sentry/sveltekit/vite';
22
import { sveltekit } from '@sveltejs/kit/vite';
33
import { defineConfig } from 'vite';
44

‎dev-packages/e2e-tests/test-applications/sveltekit-2/vite.config.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { sentrySvelteKit } from '@sentry/sveltekit';
1+
import { sentrySvelteKit } from '@sentry/sveltekit/vite';
22
import { sveltekit } from '@sveltejs/kit/vite';
33
import { defineConfig } from 'vite';
44

‎dev-packages/e2e-tests/test-applications/sveltekit-3/vite.config.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import adapter from '@sveltejs/adapter-node';
2-
import { sentrySvelteKit } from '@sentry/sveltekit';
2+
import { sentrySvelteKit } from '@sentry/sveltekit/vite';
33
import { sveltekit } from '@sveltejs/kit/vite';
44
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
55
import { defineConfig } from 'vite';

‎dev-packages/e2e-tests/test-applications/sveltekit-cloudflare-pages/vite.config.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { sentrySvelteKit } from '@sentry/sveltekit';
1+
import { sentrySvelteKit } from '@sentry/sveltekit/vite';
22
import { sveltekit } from '@sveltejs/kit/vite';
33
import { defineConfig } from 'vite';
44

‎packages/sveltekit/package.json‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@
4141
"import": "./build/esm/index.server.js",
4242
"require": "./build/cjs/index.server.js"
4343
}
44+
},
45+
"./vite": {
46+
"types": "./build/types/vite/index.d.ts",
47+
"import": "./build/esm/vite/index.js",
48+
"require": "./build/cjs/vite/index.js"
4449
}
4550
},
4651
"publishConfig": {

‎packages/sveltekit/rollup.npm.config.mjs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export default makeNPMConfigVariants(
1313
'src/client/svelte5BrowserTracing.ts',
1414
'src/server/index.ts',
1515
'src/worker/index.ts',
16+
'src/vite/index.ts',
1617
],
1718
packageSpecificConfig: {
1819
// Keep the variant subpath external so the transpiled output preserves the import for the

0 commit comments

Comments
 (0)