Describe the bug
@vitejs/[email protected] (latest of that line: 0.3.4) depends on devframe@^0.5.4, and [email protected] still declares nostics@^0.2.0. Every other package in a modern Nuxt tree ([email protected], @nuxt/kit, @nuxt/schema, vue-router, and @vitejs/devtools-kit itself) requires nostics@^1.1.4.
[email protected] and [email protected] have completely different APIs, so whichever copy npm hoists to the root of node_modules breaks the other consumer. In our case a conservative lockfile update (Dependabot bumping nuxt 4.4.8 → 4.5.0 in place) kept [email protected] hoisted at root, and Nitro's externals resolution picked it up at prerender time:
SyntaxError: The requested module 'node_modules/nostics/dist/index.mjs'
does not provide an export named 'defineProdDiagnostics'
→ every prerendered route returns 500 and nuxt build exits 1.
Failing CI run (public): https://github.com/seyken971/pxlc-nuxt/actions/runs/29714114498
Dependency chain
@nuxtjs/[email protected]
└─ [email protected]
└─ @unhead/[email protected] (pins @vitejs/devtools-kit@^0.3.4)
└─ @vitejs/[email protected]
├─ [email protected] → nostics@^0.2.0 ⚠ stale
├─ @devframes/[email protected] → nostics@^0.2.0 ⚠ stale
└─ nostics@^1.1.4
[email protected]+ already moved to nostics@^1.1.4, and @vitejs/[email protected]+ already bumped to devframe@^0.6.0 — so the head of the tree is fixed. But there is no [email protected] and no @vitejs/[email protected], so every consumer pinned to the 0.3.x line (notably @unhead/[email protected], i.e. the whole current @nuxtjs/seo → Nuxt ecosystem) keeps re-introducing [email protected] into fresh installs.
Suggested fix
Either of:
- publish
@vitejs/[email protected] bumping devframe/@devframes/hub to a nostics@^1.1.4-compatible release, or
- publish
[email protected] / @devframes/[email protected] with nostics@^1.1.4 (semver-satisfies the existing ^0.5.4 pins, no devtools-kit release needed — happy to file this in devframes/devframe instead if that repo is the better home).
Workaround
Regenerating the lockfile from scratch (rm package-lock.json && npm install) hoists [email protected] to root and nests 0.2.0 under devframe, which unbreaks Nitro. But any conservative/in-place lock update can flip it back.
Environment
- nuxt 4.5.0, @nuxtjs/seo 5.3.3, npm 11.6.4, Node 24.18.0
Describe the bug
@vitejs/[email protected](latest of that line: 0.3.4) depends ondevframe@^0.5.4, and[email protected]still declaresnostics@^0.2.0. Every other package in a modern Nuxt tree ([email protected],@nuxt/kit,@nuxt/schema,vue-router, and@vitejs/devtools-kititself) requiresnostics@^1.1.4.[email protected]and[email protected]have completely different APIs, so whichever copy npm hoists to the root ofnode_modulesbreaks the other consumer. In our case a conservative lockfile update (Dependabot bumpingnuxt4.4.8 → 4.5.0 in place) kept[email protected]hoisted at root, and Nitro's externals resolution picked it up at prerender time:→ every prerendered route returns 500 and
nuxt buildexits 1.Failing CI run (public): https://github.com/seyken971/pxlc-nuxt/actions/runs/29714114498
Dependency chain
[email protected]+already moved tonostics@^1.1.4, and@vitejs/[email protected]+already bumped todevframe@^0.6.0— so the head of the tree is fixed. But there is no[email protected]and no@vitejs/[email protected], so every consumer pinned to the 0.3.x line (notably@unhead/[email protected], i.e. the whole current@nuxtjs/seo→ Nuxt ecosystem) keeps re-introducing[email protected]into fresh installs.Suggested fix
Either of:
@vitejs/[email protected]bumpingdevframe/@devframes/hubto anostics@^1.1.4-compatible release, or[email protected]/@devframes/[email protected]withnostics@^1.1.4(semver-satisfies the existing^0.5.4pins, no devtools-kit release needed — happy to file this in devframes/devframe instead if that repo is the better home).Workaround
Regenerating the lockfile from scratch (
rm package-lock.json && npm install) hoists[email protected]to root and nests0.2.0underdevframe, which unbreaks Nitro. But any conservative/in-place lock update can flip it back.Environment