Skip to content

ref(nuxt): Build the Nuxt module in-house instead of @nuxt/module-builder#22190

Open
logaretm wants to merge 1 commit into
awad/migrate-ts-node-to-tsxfrom
awad/nuxt-inhouse-build
Open

ref(nuxt): Build the Nuxt module in-house instead of @nuxt/module-builder#22190
logaretm wants to merge 1 commit into
awad/migrate-ts-node-to-tsxfrom
awad/nuxt-inhouse-build

Conversation

@logaretm

@logaretm logaretm commented Jul 10, 2026

Copy link
Copy Markdown
Member

Replaces @nuxt/module-builder with a plain rollup + tsc setup for the build/module output. Rollup bundles the module entry and emits the runtime files one-to-one (preserveModules), tsc emits the declarations, and a small script writes module.cjs, module.json and types.d.ts.

The point is to drop a build tool that consumes the TypeScript compiler API, so the package no longer pins us to a specific compiler, also streamlines nuxt SDK build step for future changes like rolldown.

We still have E2E tests ensuring the module output is consumable by Nuxt apps, so that's not something I would worry about drifting in the future.

Stacked on #22186.

@logaretm logaretm force-pushed the awad/migrate-ts-node-to-tsx branch from 34a136b to 9549b5c Compare July 10, 2026 18:49
@logaretm logaretm force-pushed the awad/nuxt-inhouse-build branch from 00fe4d9 to 102eb9c Compare July 10, 2026 18:49
@logaretm logaretm force-pushed the awad/migrate-ts-node-to-tsx branch from 9549b5c to f0bcefb Compare July 10, 2026 18:56
@logaretm logaretm force-pushed the awad/nuxt-inhouse-build branch from 102eb9c to 10e5434 Compare July 10, 2026 18:56
@logaretm logaretm force-pushed the awad/migrate-ts-node-to-tsx branch from f0bcefb to 96ab381 Compare July 10, 2026 19:00
@logaretm logaretm force-pushed the awad/nuxt-inhouse-build branch from 10e5434 to b48cbc7 Compare July 10, 2026 19:00
@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 27.6 kB - -
@sentry/browser - with treeshaking flags 26.04 kB - -
@sentry/browser (incl. Tracing) 46.35 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 48.14 kB - -
@sentry/browser (incl. Tracing, Profiling) 51.13 kB - -
@sentry/browser (incl. Tracing, Replay) 85.62 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 75.26 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 90.33 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 102.99 kB - -
@sentry/browser (incl. Feedback) 44.78 kB - -
@sentry/browser (incl. sendFeedback) 32.4 kB - -
@sentry/browser (incl. FeedbackAsync) 37.53 kB - -
@sentry/browser (incl. Metrics) 28.68 kB - -
@sentry/browser (incl. Logs) 28.93 kB - -
@sentry/browser (incl. Metrics & Logs) 29.61 kB - -
@sentry/react 29.39 kB - -
@sentry/react (incl. Tracing) 48.62 kB - -
@sentry/vue 33.03 kB - -
@sentry/vue (incl. Tracing) 48.33 kB - -
@sentry/svelte 27.63 kB - -
CDN Bundle 30 kB - -
CDN Bundle (incl. Tracing) 48.33 kB - -
CDN Bundle (incl. Logs, Metrics) 31.58 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 49.65 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 70.82 kB - -
CDN Bundle (incl. Tracing, Replay) 85.84 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 87.16 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 91.64 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 92.92 kB - -
CDN Bundle - uncompressed 89.33 kB - -
CDN Bundle (incl. Tracing) - uncompressed 146.07 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 94.03 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 150.05 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 218.76 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 265.28 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 269.24 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 278.98 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 282.93 kB - -
@sentry/nextjs (client) 51.17 kB - -
@sentry/sveltekit (client) 46.8 kB - -
@sentry/core/server 78.42 kB - -
@sentry/core/browser 64.77 kB - -
@sentry/node-core 62.73 kB - -
@sentry/node 125.35 kB -0.01% -1 B 🔽
@sentry/node (incl. diagnostics channel injection) 139.63 kB -0.01% -1 B 🔽
@sentry/node/import (ESM hook with diagnostics-channel injection) 69.96 kB - -
@sentry/node/light 50.73 kB -0.01% -1 B 🔽
@sentry/node - without tracing 74.04 kB - -
@sentry/aws-serverless 83.26 kB - -
@sentry/cloudflare (withSentry) - minified 181.47 kB - -
@sentry/cloudflare (withSentry) 448.98 kB - -

View base workflow run

…lder

Replace @nuxt/module-builder with a plain rollup + tsc setup for the
build/module output: rollup bundles the module entry and emits the
runtime files one-to-one (preserveModules), tsc emits the declarations,
and a small script writes module.cjs, module.json and types.d.ts. This
drops a build tool that consumes the TypeScript compiler API, so the
package no longer pins us to a specific compiler.
@logaretm logaretm force-pushed the awad/migrate-ts-node-to-tsx branch from 96ab381 to df9681d Compare July 11, 2026 00:56
@logaretm logaretm force-pushed the awad/nuxt-inhouse-build branch from b48cbc7 to 18271b3 Compare July 11, 2026 00:56
@logaretm logaretm marked this pull request as ready for review July 11, 2026 02:32
@logaretm logaretm requested a review from a team as a code owner July 11, 2026 02:32
@logaretm logaretm requested review from chargome, mydea and nicohrubec and removed request for a team July 11, 2026 02:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant