Skip to content

fix(nuxt): pin ufo for example builds - #19

Merged
gioboa merged 1 commit into
module-federation:mainfrom
tonoizer:fix/pin-ufo-for-nuxt-example-builds
Aug 9, 2026
Merged

fix(nuxt): pin ufo for example builds#19
gioboa merged 1 commit into
module-federation:mainfrom
tonoizer:fix/pin-ufo-for-nuxt-example-builds

Conversation

@tonoizer

@tonoizer tonoizer commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Pin ufo@1.6.4 as a direct dependency of both Nuxt example applications.

Why

A clean checkout of this repository at 6f145fb fails on Windows with Node 24.19 and pnpm 9 during both app builds:

[MISSING_EXPORT] joinRelativeURL is not exported by
../../../../../../node_modules/ufo/dist/index.mjs

virtual:nuxt:.nuxt%2Fpaths.mjs

Nuxt generates a bare ufo import for .nuxt/paths.mjs. In the affected workspace resolution, the import can reach an incompatible parent-level ufo@0.7.11; ufo@1.6.4 exports the required joinRelativeURL symbol.

This is tracked in nuxt/nuxt#36009. The direct app dependency is a small compatibility guard for the example workspace while the Nuxt-core resolution contract is clarified. It is not a Module Federation Doctor dependency.

Validation

From a clean baseline checkout with only this change:

  • pnpm install completed
  • pnpm --filter @module-federation/nuxt build passed
  • pnpm --filter nuxt-remote build passed, including client and SSR output
  • pnpm --filter nuxt-host build passed, including client and SSR/Nitro output

Related validation

  • The issue was reproduced while validating the Nuxt adapter in module-federation/doctor#209, which has now been merged into the Doctor main branch.
  • Doctor's permanent Giga Smoke gate now covers the Nuxt adapter contract and the surrounding Vite/Rspack/Rsbuild/Webpack compatibility surfaces.
  • module-federation/nuxt#10 is a separate open PR adding first-class Rspack support and SSR examples. It is relevant to future Nuxt compatibility coverage, but is not part of this ufo fix and does not block it.
  • This PR remains scoped to the Nuxt example workspace; it does not add ufo to Module Federation Doctor and does not change the Nuxt module implementation.

Scope

  • Adds ufo@1.6.4 to apps/host and apps/remote.
  • Updates the workspace lockfile.
  • Does not change the Nuxt module implementation or application configuration.

@pkg-pr-new

pkg-pr-new Bot commented Aug 7, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@module-federation/nuxt@19

commit: 35180c6

tonoizer added a commit to tonoizer/module-federation-doctor that referenced this pull request Aug 7, 2026
## Summary

This is the V1 validation/governance slice for the cross-repository
Module Federation smoke work.

- Add a first-class `@module-federation/doctor/nuxt` module for Nuxt 3/4
using the public `vite:extendConfig` hook, with client/SSR-safe
registration and duplicate prevention.
- Export and pack-check the Nuxt adapter.
- Correct validated false positives and incomplete-evidence handling for
Nuxt output roots, manifest/stat opt-outs, runtime plugin paths, SSR
host-init checks, Webpack/native plugin detection, DTS opt-outs, and
JSON-safe canonical config.
- Add the one-command `test:giga` gate with pinned upstream provenance,
green and intentional-finding production builds, nested graph/workspace
analysis, compatibility cells, standalone/showcase catalogs, and
cross-app federation checks.
- Extend Playwright to six preview servers and assert both the healthy
browser path and the intentional React shared-runtime failure path.
- Make composite scripts, integration builds, pack consumers, and
changeset validation deterministic on Windows with the pinned Corepack
pnpm path.

## Validation

All of the following pass locally on Windows Node 24.19.0:

- `corepack pnpm build`
- `corepack pnpm lint`
- `corepack pnpm exec tsc --noEmit`
- 648 unit tests
- 18 integration tests
- `corepack pnpm docs:build`
- `corepack pnpm changeset:check`
- `corepack pnpm pack:check` (publint, attw, schemas, tarball consumer
across Vite/Rspack/Rsbuild/Webpack/Modern, including the Nuxt export)
- `corepack pnpm test:giga`

The exact Giga gate finishes with `GIGA_SMOKE_OK` and 2/2 Playwright
tests passed.

## Scope and follow-ups

- Stacked on `fix/security-dependency-alerts` / #207 so the security
dependency update lands first.
- Multiple MF plugin instances are intentionally not implemented here;
the architecture/follow-up is tracked in #208.
- The clean Nuxt upstream app build reproduces an independent generated
`.nuxt/paths.mjs`/`ufo` resolution problem without Doctor. It is
reported in
[nuxt/nuxt#36009](nuxt/nuxt#36009); the
example-workspace compatibility guard is proposed separately in
[module-federation/nuxt#19](module-federation/nuxt#19).
- The Giga provenance fixture keeps CI pinned to reviewed local surfaces
instead of cloning moving external repositories on every PR.
@Nsttt

Nsttt commented Aug 9, 2026

Copy link
Copy Markdown
Member

This ready to review @tonoizer ?

@tonoizer
tonoizer marked this pull request as ready for review August 9, 2026 20:06
@tonoizer

tonoizer commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

Yes, thanks @Nsttt — this is ready for review. The upstream Nuxt fix in nuxt/nuxt#36010 has been merged, but it is not part of a published Nuxt release yet. This PR keeps ufo@1.6.4 as a compatibility guard for the current example workspace. All CI checks are green. I’ll mark it ready for review.

@gioboa gioboa left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @tonoizer

@gioboa
gioboa merged commit b736c7f into module-federation:main Aug 9, 2026
7 checks passed
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.

3 participants