fix(nuxt): pin ufo for example builds - #19
Merged
gioboa merged 1 commit intoAug 9, 2026
Conversation
commit: |
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.
Member
|
This ready to review @tonoizer ? |
tonoizer
marked this pull request as ready for review
August 9, 2026 20:06
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
approved these changes
Aug 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pin
ufo@1.6.4as a direct dependency of both Nuxt example applications.Why
A clean checkout of this repository at
6f145fbfails on Windows with Node 24.19 and pnpm 9 during both app builds:Nuxt generates a bare
ufoimport for.nuxt/paths.mjs. In the affected workspace resolution, the import can reach an incompatible parent-levelufo@0.7.11;ufo@1.6.4exports the requiredjoinRelativeURLsymbol.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 installcompletedpnpm --filter @module-federation/nuxt buildpassedpnpm --filter nuxt-remote buildpassed, including client and SSR outputpnpm --filter nuxt-host buildpassed, including client and SSR/Nitro outputRelated validation
mainbranch.ufofix and does not block it.ufoto Module Federation Doctor and does not change the Nuxt module implementation.Scope
ufo@1.6.4toapps/hostandapps/remote.