Skip to content

Commit 34708fd

Browse files
authored
ref(nuxt): Only use rollup for build (#13138)
Previously, the Nuxt SDK was built with `@nuxt/module-builder` and rollup. This made things complicated, as it created two separate folders in the build output which could not share code between each other. This setup removes the `@nuxt/module-builder` and adds the module config to rollup.
1 parent 945cdbc commit 34708fd

File tree

9 files changed

+69
-164
lines changed

9 files changed

+69
-164
lines changed

packages/nuxt/package.json

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@
3030
}
3131
},
3232
"./module": {
33-
"types": "./build/module/types.d.ts",
34-
"import": "./build/module/module.mjs",
35-
"require": "./build/module/module.cjs"
33+
"types": "./build/types/module/index.d.ts",
34+
"import": "./build/esm/module/index.js",
35+
"require": "./build/cjs/module/index.js"
3636
}
3737
},
3838
"publishConfig": {
@@ -53,14 +53,12 @@
5353
"@sentry/vue": "8.21.0"
5454
},
5555
"devDependencies": {
56-
"@nuxt/module-builder": "0.8.0",
5756
"nuxt": "^3.12.2"
5857
},
5958
"scripts": {
6059
"build": "run-s build:types build:transpile",
6160
"build:dev": "yarn build",
62-
"build:nuxt-module": "nuxt-module-build build --outDir build/module",
63-
"build:transpile": "rollup -c rollup.npm.config.mjs && yarn build:nuxt-module",
61+
"build:transpile": "rollup -c rollup.npm.config.mjs",
6462
"build:types": "tsc -p tsconfig.types.json",
6563
"build:watch": "run-p build:transpile:watch build:types:watch",
6664
"build:dev:watch": "yarn build:watch",
@@ -90,7 +88,8 @@
9088
"outputs": [
9189
"{projectRoot}/build/cjs",
9290
"{projectRoot}/build/esm",
93-
"{projectRoot}/build/module"
91+
"{projectRoot}/build/cjs/module",
92+
"{projectRoot}/build/esm/module"
9493
]
9594
}
9695
}

packages/nuxt/rollup.npm.config.mjs

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,35 @@
11
import { makeBaseNPMConfig, makeNPMConfigVariants } from '@sentry-internal/rollup-utils';
22

3-
export default makeNPMConfigVariants(
4-
makeBaseNPMConfig({
5-
entrypoints: ['src/index.server.ts', 'src/index.client.ts', 'src/client/index.ts', 'src/server/index.ts'],
6-
}),
7-
);
3+
export default [
4+
...makeNPMConfigVariants(
5+
makeBaseNPMConfig({
6+
entrypoints: [
7+
'src/index.server.ts',
8+
'src/index.client.ts',
9+
'src/client/index.ts',
10+
'src/server/index.ts',
11+
'src/module/index.ts',
12+
],
13+
packageSpecificConfig: {
14+
external: ['nuxt/app'],
15+
},
16+
}),
17+
),
18+
...makeNPMConfigVariants(
19+
makeBaseNPMConfig({
20+
entrypoints: ['src/module/plugins/sentry.client.ts', 'src/module/plugins/sentry.server.ts'],
21+
22+
packageSpecificConfig: {
23+
external: ['nuxt/app', 'nitropack/runtime', 'h3'],
24+
output: {
25+
// Preserve the original file structure (i.e., so that everything is still relative to `src`)
26+
entryFileNames: 'module/[name].js',
27+
},
28+
},
29+
}),
30+
),
31+
];
32+
33+
/*
34+
35+
*/

packages/nuxt/src/module.ts renamed to packages/nuxt/src/module/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as fs from 'fs';
22
import * as path from 'path';
33
import { addPlugin, addPluginTemplate, addServerPlugin, createResolver, defineNuxtModule } from '@nuxt/kit';
4-
import type { SentryNuxtModuleOptions } from './common/types';
5-
import { setupSourceMaps } from './vite/sourceMaps';
4+
import type { SentryNuxtModuleOptions } from '../common/types';
5+
import { setupSourceMaps } from '../vite/sourceMaps';
66

77
export type ModuleOptions = SentryNuxtModuleOptions;
88

@@ -31,7 +31,7 @@ export default defineNuxtModule<ModuleOptions>({
3131
'export default defineNuxtPlugin(() => {})',
3232
});
3333

34-
addPlugin({ src: moduleDirResolver.resolve('./runtime/plugins/sentry.client'), mode: 'client' });
34+
addPlugin({ src: moduleDirResolver.resolve('./plugins/sentry.client'), mode: 'client' });
3535
}
3636

3737
const serverConfigFile = findDefaultSdkInitFile('server');
@@ -46,7 +46,7 @@ export default defineNuxtModule<ModuleOptions>({
4646
'export default defineNuxtPlugin(() => {})',
4747
});
4848

49-
addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/sentry.server'));
49+
addServerPlugin(moduleDirResolver.resolve('./plugins/sentry.server'));
5050
}
5151

5252
if (clientConfigFile || serverConfigFile) {

packages/nuxt/test/client/runtime/utils.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { describe, expect, it } from 'vitest';
2-
import { extractErrorContext } from '../../../src/runtime/utils';
2+
import { extractErrorContext } from '../../../src/module/utils';
33

44
describe('extractErrorContext', () => {
55
it('returns empty object for undefined or empty context', () => {

packages/nuxt/test/server/runtime/plugin.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { afterEach, describe, expect, it, vi } from 'vitest';
2-
import { addSentryTracingMetaTags } from '../../../src/runtime/utils';
2+
import { addSentryTracingMetaTags } from '../../../src/module/utils';
33

44
const mockReturns = vi.hoisted(() => {
55
return {

0 commit comments

Comments
 (0)