Skip to content

Commit dde2198

Browse files
chargomeclaude
andcommitted
fix(nuxt): Remove @opentelemetry/resources dev alias
The alias ended up in the generated .nuxt tsconfig paths as a non-relative path, which vue-tsc rejects when typeCheck is enabled. Nothing in the Nuxt SDK's dependency tree uses @opentelemetry/resources anymore, so the alias is no longer needed. Fixes #25188 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 9e98e4b commit dde2198

3 files changed

Lines changed: 1 addition & 97 deletions

File tree

‎packages/nuxt/src/module.ts‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import type { SentryNuxtModuleOptions } from './common/types';
77
import { setupNitroServer } from './vite/nitroServer';
88
import { setupOrchestrion } from './vite/orchestrion';
99
import { setupSourceMaps } from './vite/sourceMaps';
10-
import { addOTelCommonJSImportAlias, findDefaultSdkInitFile, resolveServerApi } from './vite/utils';
10+
import { findDefaultSdkInitFile, resolveServerApi } from './vite/utils';
1111

1212
export type ModuleOptions = SentryNuxtModuleOptions;
1313
type NuxtPageSubset = { file?: string; path: string };
@@ -97,8 +97,6 @@ export default defineNuxtModule<ModuleOptions>({
9797
setupSourceMaps(moduleOptions, nuxt, addVitePlugin);
9898
}
9999

100-
addOTelCommonJSImportAlias(nuxt, serverApi === 'nitro3');
101-
102100
let pagesData: NuxtPageSubset[] = [];
103101

104102
nuxt.hooks.hook('pages:extend', pages => {

‎packages/nuxt/src/vite/utils.ts‎

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -224,27 +224,3 @@ export function toResolvablePath(source: string): { path: string; wasFileUrl: bo
224224
return undefined;
225225
}
226226
}
227-
228-
/**
229-
* Sets up alias to work around OpenTelemetry's incomplete ESM imports.
230-
* https://github.com/getsentry/sentry-javascript/issues/15204
231-
*
232-
* OpenTelemetry's @opentelemetry/resources package has incomplete imports missing
233-
* the .js file extensions (like execAsync for machine-id detection). This causes module resolution
234-
* errors in certain Nuxt configurations, particularly when local Nuxt modules in Nuxt 4 are present.
235-
*
236-
* @see https://nuxt.com/docs/guide/concepts/esm#aliasing-libraries
237-
*/
238-
export function addOTelCommonJSImportAlias(nuxt: Nuxt, isNitroV3 = false): void {
239-
if (!nuxt.options.dev || isNitroV3) {
240-
return;
241-
}
242-
243-
if (!nuxt.options.alias) {
244-
nuxt.options.alias = {};
245-
}
246-
247-
if (!nuxt.options.alias['@opentelemetry/resources']) {
248-
nuxt.options.alias['@opentelemetry/resources'] = '@opentelemetry/resources/build/src/index.js';
249-
}
250-
}

‎packages/nuxt/test/vite/utils.test.ts‎

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import * as fs from 'fs';
33
import * as path from 'path';
44
import { afterEach, describe, expect, it, vi } from 'vitest';
55
import {
6-
addOTelCommonJSImportAlias,
76
constructFunctionReExport,
87
constructWrappedFunctionExportQuery,
98
extractFunctionReexportQueryParameters,
@@ -428,72 +427,3 @@ export { foo_sentryWrapped as foo };
428427
expect(result).toBe('');
429428
});
430429
});
431-
432-
describe('addOTelCommonJSImportAlias', () => {
433-
it('adds alias for @opentelemetry/resources when options.alias does not exist', () => {
434-
const nuxtMock: Nuxt = {
435-
options: { dev: true },
436-
} as unknown as Nuxt;
437-
438-
addOTelCommonJSImportAlias(nuxtMock);
439-
440-
expect(nuxtMock.options.alias).toEqual({
441-
'@opentelemetry/resources': '@opentelemetry/resources/build/src/index.js',
442-
});
443-
});
444-
445-
it('adds alias for @opentelemetry/resources when options.alias already exists', () => {
446-
const nuxtMock: Nuxt = {
447-
options: {
448-
dev: true,
449-
alias: {
450-
'existing-alias': 'some-path',
451-
},
452-
},
453-
} as unknown as Nuxt;
454-
455-
addOTelCommonJSImportAlias(nuxtMock);
456-
457-
expect(nuxtMock.options.alias).toEqual({
458-
'existing-alias': 'some-path',
459-
'@opentelemetry/resources': '@opentelemetry/resources/build/src/index.js',
460-
});
461-
});
462-
463-
it('does not override existing alias for @opentelemetry/resources', () => {
464-
const nuxtMock: Nuxt = {
465-
options: {
466-
dev: true,
467-
alias: {
468-
'@opentelemetry/resources': 'some-other-path',
469-
},
470-
},
471-
} as unknown as Nuxt;
472-
473-
addOTelCommonJSImportAlias(nuxtMock);
474-
475-
expect(nuxtMock.options.alias).toEqual({
476-
'@opentelemetry/resources': 'some-other-path',
477-
});
478-
});
479-
480-
it('does not add alias when not development mode', () => {
481-
const nuxtMock: Nuxt = {
482-
options: {},
483-
} as unknown as Nuxt;
484-
485-
addOTelCommonJSImportAlias(nuxtMock);
486-
487-
expect(nuxtMock.options.alias).toBeUndefined();
488-
});
489-
490-
it('does not add alias when in Nitro v3+ (Rolldown incompatibility)', () => {
491-
const nuxtMock: Nuxt = {
492-
options: { dev: true },
493-
} as unknown as Nuxt;
494-
495-
addOTelCommonJSImportAlias(nuxtMock, true);
496-
497-
expect(nuxtMock.options.alias).toBeUndefined();
498-
});
499-
});

0 commit comments

Comments
 (0)