From 7f8436db95ee3acf509e541729462c10e5d5b148 Mon Sep 17 00:00:00 2001 From: Martin Sonnberger Date: Mon, 24 Aug 2026 11:37:29 +0200 Subject: [PATCH] ref(react-router)!: Move Vite plugin exports to subpath `@sentry/react-router/vite` --- .../react-router.config.ts | 2 +- .../hydrogen-react-router-7/vite.config.ts | 2 +- .../vite.config.ts | 2 +- .../react-router-8-cloudflare/vite.config.ts | 2 +- .../react-router-8-framework/vite.config.ts | 2 +- .../react-router.config.ts | 2 +- .../react-router-sourcemaps/vite.config.ts | 2 +- docs/migration/v11-end-state.md | 18 ++++++++++++++++++ packages/react-router/README.md | 4 ++-- packages/react-router/package.json | 5 +++++ packages/react-router/rollup.npm.config.mjs | 2 +- packages/react-router/src/index.server.ts | 1 - packages/react-router/src/index.types.ts | 1 - 13 files changed, 33 insertions(+), 12 deletions(-) diff --git a/dev-packages/e2e-tests/test-applications/hydrogen-react-router-7/react-router.config.ts b/dev-packages/e2e-tests/test-applications/hydrogen-react-router-7/react-router.config.ts index 09071780e0e5..c27be8b3d22f 100644 --- a/dev-packages/e2e-tests/test-applications/hydrogen-react-router-7/react-router.config.ts +++ b/dev-packages/e2e-tests/test-applications/hydrogen-react-router-7/react-router.config.ts @@ -1,5 +1,5 @@ import type { Config } from '@react-router/dev/config'; -import { sentryOnBuildEnd } from '@sentry/react-router'; +import { sentryOnBuildEnd } from '@sentry/react-router/vite'; export default { appDirectory: 'app', diff --git a/dev-packages/e2e-tests/test-applications/hydrogen-react-router-7/vite.config.ts b/dev-packages/e2e-tests/test-applications/hydrogen-react-router-7/vite.config.ts index fbff797eddfa..c2cdaffff97e 100644 --- a/dev-packages/e2e-tests/test-applications/hydrogen-react-router-7/vite.config.ts +++ b/dev-packages/e2e-tests/test-applications/hydrogen-react-router-7/vite.config.ts @@ -3,7 +3,7 @@ import { hydrogen } from '@shopify/hydrogen/vite'; import { oxygen } from '@shopify/mini-oxygen/vite'; import { defineConfig } from 'vite'; import tsconfigPaths from 'vite-tsconfig-paths'; -import { sentryReactRouter, type SentryReactRouterBuildOptions } from '@sentry/react-router'; +import { sentryReactRouter, type SentryReactRouterBuildOptions } from '@sentry/react-router/vite'; const sentryConfig: SentryReactRouterBuildOptions = { org: 'example-org', diff --git a/dev-packages/e2e-tests/test-applications/react-router-7-framework-instrumentation/vite.config.ts b/dev-packages/e2e-tests/test-applications/react-router-7-framework-instrumentation/vite.config.ts index 4da306d41cc7..5f0388476190 100644 --- a/dev-packages/e2e-tests/test-applications/react-router-7-framework-instrumentation/vite.config.ts +++ b/dev-packages/e2e-tests/test-applications/react-router-7-framework-instrumentation/vite.config.ts @@ -1,5 +1,5 @@ import { reactRouter } from '@react-router/dev/vite'; -import { sentryReactRouter } from '@sentry/react-router'; +import { sentryReactRouter } from '@sentry/react-router/vite'; import { defineConfig } from 'vite'; export default defineConfig(async config => ({ diff --git a/dev-packages/e2e-tests/test-applications/react-router-8-cloudflare/vite.config.ts b/dev-packages/e2e-tests/test-applications/react-router-8-cloudflare/vite.config.ts index 86a05f2a7814..cd07d7a3fe03 100644 --- a/dev-packages/e2e-tests/test-applications/react-router-8-cloudflare/vite.config.ts +++ b/dev-packages/e2e-tests/test-applications/react-router-8-cloudflare/vite.config.ts @@ -1,6 +1,6 @@ import { cloudflare } from '@cloudflare/vite-plugin'; import { reactRouter } from '@react-router/dev/vite'; -import { sentryReactRouter } from '@sentry/react-router'; +import { sentryReactRouter } from '@sentry/react-router/vite'; import { defineConfig } from 'vite'; export default defineConfig(async config => ({ diff --git a/dev-packages/e2e-tests/test-applications/react-router-8-framework/vite.config.ts b/dev-packages/e2e-tests/test-applications/react-router-8-framework/vite.config.ts index 912a22c538fe..0fe4cdde8c7a 100644 --- a/dev-packages/e2e-tests/test-applications/react-router-8-framework/vite.config.ts +++ b/dev-packages/e2e-tests/test-applications/react-router-8-framework/vite.config.ts @@ -1,5 +1,5 @@ import { reactRouter } from '@react-router/dev/vite'; -import { sentryReactRouter } from '@sentry/react-router'; +import { sentryReactRouter } from '@sentry/react-router/vite'; import { defineConfig } from 'vite'; export default defineConfig(config => { diff --git a/dev-packages/e2e-tests/test-applications/react-router-sourcemaps/react-router.config.ts b/dev-packages/e2e-tests/test-applications/react-router-sourcemaps/react-router.config.ts index de81e63c4e37..ba17ed0bb054 100644 --- a/dev-packages/e2e-tests/test-applications/react-router-sourcemaps/react-router.config.ts +++ b/dev-packages/e2e-tests/test-applications/react-router-sourcemaps/react-router.config.ts @@ -1,5 +1,5 @@ import type { Config } from '@react-router/dev/config'; -import { sentryOnBuildEnd } from '@sentry/react-router'; +import { sentryOnBuildEnd } from '@sentry/react-router/vite'; export default { ssr: true, diff --git a/dev-packages/e2e-tests/test-applications/react-router-sourcemaps/vite.config.ts b/dev-packages/e2e-tests/test-applications/react-router-sourcemaps/vite.config.ts index 7ff1ec51ad54..7ecda171a055 100644 --- a/dev-packages/e2e-tests/test-applications/react-router-sourcemaps/vite.config.ts +++ b/dev-packages/e2e-tests/test-applications/react-router-sourcemaps/vite.config.ts @@ -1,5 +1,5 @@ import { reactRouter } from '@react-router/dev/vite'; -import { sentryReactRouter, type SentryReactRouterBuildOptions } from '@sentry/react-router'; +import { sentryReactRouter, type SentryReactRouterBuildOptions } from '@sentry/react-router/vite'; import { defineConfig } from 'vite'; // Guards against debug IDs being injected twice - once by the Vite plugin and once by diff --git a/docs/migration/v11-end-state.md b/docs/migration/v11-end-state.md index bb6c5a469407..a6eada033297 100644 --- a/docs/migration/v11-end-state.md +++ b/docs/migration/v11-end-state.md @@ -745,6 +745,24 @@ Affected SDKs: `@sentry/cloudflare`. + import { wrapRequestHandler } from '@sentry/cloudflare/request'; ``` +### React Router: Vite plugin moved to `@sentry/react-router/vite` + +Affected SDKs: `@sentry/react-router`. + +`sentryReactRouter`, `sentryOnBuildEnd`, `makeConfigInjectorPlugin` and the `SentryReactRouterBuildOptions` type are no longer available from the main `@sentry/react-router` entry point. Import them from the dedicated subpath instead: + +```diff +// vite.config.ts +- import { sentryReactRouter } from '@sentry/react-router'; ++ import { sentryReactRouter } from '@sentry/react-router/vite'; +``` + +```diff +// react-router.config.ts +- import { sentryOnBuildEnd } from '@sentry/react-router'; ++ import { sentryOnBuildEnd } from '@sentry/react-router/vite'; +``` + ## 3. Removed APIs ### `@sentry/core` / All SDKs diff --git a/packages/react-router/README.md b/packages/react-router/README.md index 139ff863f6d1..5568bda339e2 100644 --- a/packages/react-router/README.md +++ b/packages/react-router/README.md @@ -155,7 +155,7 @@ Update your vite.config.ts file to include the `sentryReactRouter` plugin and al ```ts import { reactRouter } from '@react-router/dev/vite'; -import { sentryReactRouter } from '@sentry/react-router'; +import { sentryReactRouter } from '@sentry/react-router/vite'; import { defineConfig } from 'vite'; const sentryConfig = { @@ -177,7 +177,7 @@ Next, in your `react-router.config.ts` file, include the `sentryOnBuildEnd` hook ```ts import type { Config } from '@react-router/dev/config'; -import { sentryOnBuildEnd } from '@sentry/react-router'; +import { sentryOnBuildEnd } from '@sentry/react-router/vite'; export default { ssr: true, diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 4ef8f3e90e42..d1081136e851 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -39,6 +39,11 @@ "require": "./build/cjs/cloudflare/index.js", "types": "./build/types/cloudflare/index.d.ts", "default": "./build/esm/cloudflare/index.js" + }, + "./vite": { + "types": "./build/types/vite/index.d.ts", + "import": "./build/esm/vite/index.js", + "require": "./build/cjs/vite/index.js" } }, "publishConfig": { diff --git a/packages/react-router/rollup.npm.config.mjs b/packages/react-router/rollup.npm.config.mjs index edd3e56f0cb8..877c089b6841 100644 --- a/packages/react-router/rollup.npm.config.mjs +++ b/packages/react-router/rollup.npm.config.mjs @@ -7,7 +7,7 @@ import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollu export default [ ...makeNPMConfigVariants( makeBaseNPMConfig({ - entrypoints: ['src/index.server.ts', 'src/index.client.ts', 'src/cloudflare/index.ts'], + entrypoints: ['src/index.server.ts', 'src/index.client.ts', 'src/cloudflare/index.ts', 'src/vite/index.ts'], packageSpecificConfig: { external: ['react-router', 'react-router-dom', 'react', 'react/jsx-runtime', 'vite'], output: { diff --git a/packages/react-router/src/index.server.ts b/packages/react-router/src/index.server.ts index d675a1c72820..0ce5251aa327 100644 --- a/packages/react-router/src/index.server.ts +++ b/packages/react-router/src/index.server.ts @@ -1,2 +1 @@ export * from './server'; -export * from './vite'; diff --git a/packages/react-router/src/index.types.ts b/packages/react-router/src/index.types.ts index af8c4da6d94a..a1bb9aaaa1f6 100644 --- a/packages/react-router/src/index.types.ts +++ b/packages/react-router/src/index.types.ts @@ -9,7 +9,6 @@ import type * as serverSdk from './server'; // re-define colliding type exports below export * from './client'; export * from './server'; -export * from './vite'; /** Initializes Sentry React Router SDK */ export declare function init(options: Options | clientSdk.BrowserOptions | serverSdk.NodeOptions): void;