diff --git a/packages/nuxt/src/common/types.ts b/packages/nuxt/src/common/types.ts index 93ca94016924..8a9a453ff7db 100644 --- a/packages/nuxt/src/common/types.ts +++ b/packages/nuxt/src/common/types.ts @@ -32,6 +32,13 @@ type SourceMapsOptions = { */ org?: string; + /** + * The URL of your Sentry instance if you're using self-hosted Sentry. + * + * @default https://sentry.io by default the plugin will point towards the Sentry SaaS URL + */ + url?: string; + /** * The project slug of your Sentry project. * Instead of specifying this option, you can also set the `SENTRY_PROJECT` environment variable. diff --git a/packages/nuxt/src/vite/sourceMaps.ts b/packages/nuxt/src/vite/sourceMaps.ts index 2f90094e6138..0b264e822bcc 100644 --- a/packages/nuxt/src/vite/sourceMaps.ts +++ b/packages/nuxt/src/vite/sourceMaps.ts @@ -91,6 +91,7 @@ export function getPluginOptions( project: sourceMapsUploadOptions.project ?? process.env.SENTRY_PROJECT, authToken: sourceMapsUploadOptions.authToken ?? process.env.SENTRY_AUTH_TOKEN, telemetry: sourceMapsUploadOptions.telemetry ?? true, + url: sourceMapsUploadOptions.url ?? process.env.SENTRY_URL, debug: moduleOptions.debug ?? false, _metaOptions: { telemetry: { diff --git a/packages/nuxt/test/vite/sourceMaps.test.ts b/packages/nuxt/test/vite/sourceMaps.test.ts index 0c90429fa8d5..b33d314f5166 100644 --- a/packages/nuxt/test/vite/sourceMaps.test.ts +++ b/packages/nuxt/test/vite/sourceMaps.test.ts @@ -20,6 +20,7 @@ describe('getPluginOptions', () => { SENTRY_ORG: 'default-org', SENTRY_PROJECT: 'default-project', SENTRY_AUTH_TOKEN: 'default-token', + SENTRY_URL: 'https://santry.io', }; process.env = { ...defaultEnv }; @@ -31,6 +32,7 @@ describe('getPluginOptions', () => { org: 'default-org', project: 'default-project', authToken: 'default-token', + url: 'https://santry.io', telemetry: true, sourcemaps: expect.objectContaining({ rewriteSources: expect.any(Function), @@ -114,6 +116,7 @@ describe('getPluginOptions', () => { assets: ['custom-assets/**/*'], filesToDeleteAfterUpload: ['delete-this.js'], }, + url: 'https://santry.io', }, debug: true, unstable_sentryBundlerPluginOptions: { @@ -124,6 +127,7 @@ describe('getPluginOptions', () => { release: { name: 'test-release', }, + url: 'https://suntry.io', }, }; const options = getPluginOptions(customOptions, false); @@ -140,6 +144,7 @@ describe('getPluginOptions', () => { release: expect.objectContaining({ name: 'test-release', }), + url: 'https://suntry.io', }), ); });