Skip to content

chore(deps): update peerdependency @nuxt/cli to v4 - #804

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/nuxt-cli-4.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/nuxt-cli-4.x

Conversation

@renovate

@renovate renovate Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@nuxt/cli (source) ^3.37.0 → ^4.0.1 age confidence

Release Notes

nuxt/cli (@​nuxt/cli)

v4.0.1

Compare Source

v4.0.1 is the next patch release.

👉 Changelog

compare changes

🩹 Fixes
  • dev: open BROWSER without a display server (#​1609)
  • dev: record logs printed in the same tick as separate entries (#​1606)
  • dev: keep log overlay rows within the terminal width (#​1605)
  • dev: disable dev channels when BroadcastChannel throws (#​1600)
💅 Refactors
  • add: use package-manager-detector workspace + deno handling (c1e0e9ee)
✅ Tests
  • update snapshots for upm (#​1597)
  • skip update check while recording (eec52f07)
🎉 New Contributors
❤️ Contributors

v4.0.0

Compare Source

v4.0.0 is the next major release.

👀 Highlights

Nuxt CLI v4 is a performance, feature and DX-focused release.

It ships alongside Nuxt 4.6, and alongside resolving almost all of the open issues, we've focused on the nuxt dev experience: how quickly it starts, the information it shows you, and what happens when something goes wrong.

It's also a lot smaller. 😁

There's quite a bit to cover (more than 200 commits since v3.37), so here are just some of the things that we're particularly excited about! 🎉

🐞 Better dev-time errors with my-bad

Dev-time errors are now rendered with my-bad, which replaces youch (#​1518).

A Vue error rendered by my-bad, showing the original source frame in app/pages/broken.vue

When a page fails to render, you get your own page's error state along with a small overlay in the corner. Expanding it shows the source-mapped code frame in your file, the call stack (with framework frames folded away by default), the Vue component trace, the request and environment, and the server logs that led up to the error.

The collapsed my-bad overlay in the corner of a Nuxt error page

There's a Copy error button with a few formats, including a prompt you can hand straight to an agent:

The my-bad copy menu: copy as Markdown, copy prompt for an agent, copy structured JSON

The CLI now also hosts a single live error channel, mounted at devServer.errorChannel (default /__nuxt_dev__/error). Because it lives in the CLI rather than inside Nuxt, it survives restarts of the process serving your app, and it can report errors that happen before Nuxt is up at all. So if your nuxt.config has a syntax error, or a module can't be loaded, you get a proper error page in the browser, which reloads by itself once you've fixed it:

my-bad showing a build error for a missing @​nuxt/image module

Each error is rendered once, rather than at several levels (Vite plugin, Nuxt error handler, h3). The terminal gets the same treatment, with a code frame and folded dependency frames:

[request error] [GET] /broken

  ✖ TypeError (500): Cannot read properties of null (reading 'name')

    <nuxt-root> › <app> › <NuxtPage> › <RouterView> › <RouteProvider> › <broken>

      1 │ <script setup lang="ts">
      2 │ const user = { profile: null as null | { name: string } }
    › 3 │ const name = user.profile!.name.toUpperCase()
        │                            ^
      4 │ </script>

    at setup app/pages/broken.vue:3:28
    … 9 dependency frames

Watch a config syntax error recover automatically

[!NOTE]
The in-app overlay, source-mapped SSR stack traces and component traces need Nuxt 4.6 (nuxt/nuxt#36258). With an older Nuxt, the CLI still renders errors it sees itself (such as startup and config failures) with my-bad, but other errors will be rendered as before with youch.

The error channel is only served in full to loopback peers. If you expose your dev server to the network, remote peers get a scoped view without request details or error history (#​1547, #​1552, #​1554).

🖥️ An interactive terminal UI for nuxt dev

I am very excited about this one. In an interactive terminal, nuxt dev now renders a panel pinned to the bottom of the screen with your URLs, live startup progress, the current status and a row of shortcuts, while logs fold away above it (#​1463).

nuxt dev with the interactive terminal UI

Everything is a single keypress away:

Key Action
r / shift-r Restart the dev server (optionally with a cleared cache)
o Open the app in your browser
y Copy the server URL to the clipboard
i Versions, URLs, QR code and session info
l / e Browse the log history, or jump to the last error
n Browse served requests
p Browse pages and server routes
c Clear the console without deleting history
x Delete log and request history
? Show all shortcuts
q Quit

Every request the dev server forwards is now tagged with an id, so logs and errors are attributed to the request that caused them, and you can drill into a request from the n view to see what it logged (2d9f1a8, #​1557, #​1558, #​1474).

Select a request and press enter to open its timeline: middleware, plugins, hooks, data fetching, rendering and outgoing requests, followed by Vite compilation timings and the request's logs (#​1582). The detail available depends on your Nuxt and Nitro versions. Inside a view, y copies the selected row and shift-y copies the filtered contents (#​1537).

Screen.Recording.2026-09-27.at.16.58.56.mov

When something inside the dev server needs your input (for example, useScript() offering to install @nuxt/scripts), the panel steps aside and lets you answer it (#​1488):

nuxt dev prompting to install a module from the interactive UI

This also adds three primitives for modules that want to play nicely with the new UI: withTerminal() to borrow the terminal, startTask() for a spinner on the status line, and notify() for a notice that lands in the log history. (To use this, make sure your module has @nuxt/kit v4.6 as a dependency...)

[!TIP]
The UI falls back to a plain stream of logs when the output isn't a terminal, in CI, when a debugger is attached, or when the terminal is too small. Pass --no-tui (or set NUXT_TUI=plain for good) if you prefer the classic output.

We've also tried to make the dev server surface more information about what it's doing:

  • It gives granular information about what's making a startup slow (if it is!), including the wait between "ready" and the first page (#​1478, #​1496), and streams the same progress to the loading page in your browser (81a5de1).
  • It tells you why it reloaded or restarted, and for a nuxt.config change it lists the keys that actually changed (#​1402, #​1403). Saves that change nothing no longer restart the server at all (#​1435).
  • We've also done the same for nuxt build, which reports its phases and where the time went (#​1490).

nuxt dev reporting which nuxt.config keys changed on restart

⚡️ Faster startup, smaller install

As mentioned above, we've spent a lot of time on the size and startup time of the CLI and have cleared away a lot of unnecessary, old and deprecated dependencies.

@nuxt/cli has gone from 70 packages to 31 and from 13.1 MB to 3.5 MB installed, and the global nuxi package from 6.0 MB to 0.8 MB. We've swapped out a number of dependencies for Node built-ins or smaller alternatives (picocolors for node:util styleText, semver for verkit, fuse.js for fuzzysort, magicast for oxc, ofetch for native fetch, source-map-js for Node's SourceMap), stopped bundling jiti, and kept registry lookups and the update check off the startup path (#​1379, #​1409, #​1413, #​1416, #​1425, #​1430, #​1443).

v3.37.0 v4.0.0
@nuxt/cli install size 13.1 MB 3.5 MB -73%
@nuxt/cli dependencies 70 31 -56%
nuxi install size 6.0 MB 0.8 MB -87%
nuxt --help 108 ms 73 ms -32%
nuxi --help (global) 88 ms 49 ms -44%
nuxt dev: first paint 330 ms 50 ms 6.6x faster
nuxt dev: port bound 338 ms 104 ms 3.2x faster
nuxt dev: first page served 3.2 s 2.6 s -19%
nuxt dev: memory at rest (Linux) 630 MB 440 MB -30%
Nuxt CLI startup and install-size benchmark results

[!NOTE]
This was measured on a minimal pnpm create nuxt app with Nuxt 4.5.2, Node 24.15 on arm64 Linux, median of 10 runs.

A few of the changes behind this:

  • The dev server binds its port before your config is loaded, so the browser has something to connect to straight away, and the panel is painted before anything else happens (#​1555, 88de5da, 11226da).
  • On Linux, we disable mimalloc's eager arena commit (used by Rolldown and oxc), which stops the dev server's memory from tracking arena size rather than live bytes (#​1411).
  • A hard restart keeps serving on the same port using SO_REUSEPORT and hands it to the new process, rather than dropping connections while it comes back up (#​1404).
  • We keep a single warm fork ready (configurable with NUXT_DEV_FORK_POOL_SIZE), and only start warming it once you change a file (1897968, 9a10f71).
🤖 Friendlier to agents (and to people with too many terminals)

A running dev server now records itself in a lock file in .nuxt/. That means a second nuxt dev for the same project reports the server that is already running rather than racing it for a port, and can take it over when that makes sense (#​1414):

  • If an agent starts nuxt dev while another non-interactive server is running, it takes over (loudly).
  • If the running server is one you started in a terminal, a non-interactive nuxt dev refuses and tells the agent where your server is.
  • Pass --takeover to force it.

The lock file also powers two new commands that talk to the running server without you needing to know the port (#​1417, #​1432):

nuxt curl /api/hello
nuxt curl /api/users -X POST -d '{"name":"daniel"}'

nuxt task list
nuxt task run db:migrate --payload.force=true

nuxt curl pretty-printing a JSON response

nuxt curl pretty-prints and highlights responses in a terminal, and exits with 22 on HTTP errors, just like curl --fail. When nuxt dev runs non-interactively, it suggests using nuxt curl (#​1464).

nuxt preview also records its running process and supports --takeover to replace an existing preview server (#​1572).

nuxt info (82fe2d6), nuxt module search and nuxt task list all gain --json output (da95c8b).

📚 nuxt docs

You can now search the Nuxt documentation from your terminal (f2dbd8c):

nuxt docs "server routes"

It searches the docs for the Nuxt version your project actually depends on, and opens the best match in your browser (or lets you pick, if there are several).

✨ Lots of smaller things
  • Typos: mistype a command or a flag and we'll suggest the one you meant, and offer to rerun it (b841b87, 07e7981, 36119fe).

  • Layers: nuxt add can now add layers, and detects module subpaths, so nuxt add vue-sonner adds vue-sonner/nuxt (#​1399).

  • pnpm catalogs: nuxt upgrade and nuxt info understand pnpm catalogs (#​1397).

  • Module search shows descriptions and highlights matches (e621b9c).

    nuxt module search highlighting matches

  • Update nudges: the CLI lets you know when a newer Nuxt release is available (#​1393, #​1406). Set NUXT_IGNORE_UPDATE_CHECK=1 to turn this off.

  • Dev server: --strictPort, --open.url for a custom path, BROWSER support, r/u/qr/copy shortcuts in plain mode, a hint about --host inside Docker or WSL, a warning when the server is reachable from the network, and StackBlitz and portless URL detection (b6ee3b9, f693d33, c1c6687, bf72c89, 29558d5, 40ab1f6, 62a030f, a0eace5).

  • Network failures suggest a proxy-aware retry command (#​1387), and first-run failures are explained before Nuxt even loads (#​1444).

  • Builds without a server runtime: analyze, build, dev and preview no longer assume Nitro is present, which makes the CLI more resilient to different Nitro versions and pure Vite SPA builds (#​1505, #​1509).

  • Security hardening: cloudflared downloads are pinned and checksum-verified, internal dev endpoints reject unknown Host headers, GITHUB_TOKEN is only sent to GitHub, and templates can't be written outside your project (3ad862d, 14c268e, 2a1e5b0, 29e69b9).

The CLI docs now live in this repository (#​1465), alongside a terminal capture harness that produces the recordings you see above (#​1461).

✅ Upgrading

@nuxt/cli is a dependency of nuxt, and your project runs whichever version nuxt depends on. The way to get v4 is to upgrade to Nuxt 4.6, which depends on it:

npx nuxt upgrade --dedupe

If you'd like to try CLI v4 before upgrading Nuxt, you can override the version nuxt depends on. With pnpm, in pnpm-workspace.yaml:

overrides:
  '@nuxt/cli': ^4.0.0

With npm (or bun), in package.json:

{
  "overrides": {
    "@nuxt/cli": "^4.0.0"
  }
}

With yarn, use resolutions instead of overrides. Then reinstall, and check with npx nuxt --version.

[!NOTE]
Installing @nuxt/cli directly, or updating a global nuxi, isn't enough on its own. A global nuxi hands off to your project's own @nuxt/cli (v3.26 or later), so each project runs its own CLI version.

⚠️ Breaking changes

If you're getting CLI v4 by upgrading to Nuxt 4.6, check that your Node.js version meets Nuxt 4.6's requirement (Node.js v22.21+, v24.11+ or v26+). No other migration is needed for a supported Nuxt 4 setup. 🎉

This is a major release only because it drops support for some older setups. The compatibility changes below also matter if you override @nuxt/cli on an older version of Nuxt, or use a global nuxi with older projects:

  • Node.js v22.21+, v24.11+ or v26+ is now required. The CLI uses native TypeScript type stripping and Node's environment-proxy support (4360712, e4aae262). Projects on an older Node version need to upgrade before using CLI v4.
  • Nuxt 2 and @nuxt/bridge are no longer supported, as Nuxt 2 has been EOL for some time now (#​1410).
  • A global nuxi only hands off to a project @nuxt/cli of v3.26 or later (#​1410). Every Nuxt 4 release (and Nuxt 3.18+) depends on a compatible version, so this only affects projects with an older lockfile, which will run the global nuxi's own commands instead.
  • nuxt init has moved out of @nuxt/cli. We consider it an edge case to use an already-installed Nuxt to create another one, so instead just use npm create nuxt@latest (or npx nuxi init). This saves around 220 KB in every Nuxt project (#​1420).

There are also a couple of other changes you'll notice, though they shouldn't need any action:

  • nuxt dev shows the interactive UI by default in an interactive terminal. Scripts and CI are unaffected, and --no-tui or NUXT_TUI=plain restores the previous output.
  • Dev-time errors are rendered with my-bad instead of youch (#​1518).
👉 Changelog

compare changes

🚀 Enhancements
  • dev: Better errors inspired by nitro (#​1383)
  • dev: Detect portless proxy urls (a0eace5a0)
  • dev: Add q and quit shortcuts to dev server (#​1378)
  • dev: Respect BROWSER env when opening browser (c1c6687b1)
  • dev: Add --strictPort flag (b6ee3b9f2)
  • dev: Support opening a custom path or url (f693d337b)
  • dev: Add restart, url, qr and copy shortcuts (bf72c8985)
  • Suggest proxy-aware retry command when network fails (#​1387)
  • Nudge when a newer nuxt release is available (#​1393)
  • init: Opt yarn projects out of plug'n'play (64b45259f)
  • nuxi: Defer subcommands to the project's @​nuxt/cli (#​1394)
  • build: Report total build time (3d16e4c9d)
  • Support pnpm catalogs (#​1397)
  • add: Support adding layers via cli (#​1399)
  • dev: Hint about --host when bound to loopback in docker or wsl (29558d53c)
  • dev: Surface the stackblitz editor url in the dev url block (62a030fad)
  • dev: Report why the dev server reloaded or restarted (#​1402)
  • dev: Print changed nuxt.config keys on a config-triggered reload (#​1403)
  • Improve upgrade hints + add init hint/tip (#​1406)
  • dev: Take over a dev server already running on this project (#​1414)
  • curl,task: Add nuxt curl, nuxt task list and nuxt task run (#​1417)
  • module: Show descriptions and highlight matches while searching (e621b9ccd)
  • curl,task: Highlight + pretty-print responses (#​1432)
  • dev: Explain first-run failures before nuxt loads (#​1444)
  • info: Add --json output (82fe2d63a)
  • Warn on unknown options and suggest the intended one (07e798124)
  • Suggest the closest command instead of dumping help (b841b87fc)
  • module,task: Add --json to module search and task list (da95c8bad)
  • docs: Add nuxt docs command (f2dbd8c61)
  • Offer to rerun with correct spelling of commands/args (36119fe82)
  • dev: Stream live startup progress to the loading page and terminal (81a5de14a)
  • dev: Suggest using nuxt curl when running non-interactively (#​1464)
  • dev: Interactive terminal ui for the dev server (#​1463)
  • dev: Narrate what a slow startup is waiting on (#​1478)
  • dev: Warn when the dev server is reachable from the network (40ab1f66b)
  • dev: A terminal host for prompts, tasks and notifications (#​1488)
  • build: Report build phases and where the time went (#​1490)
  • dev: Narrate the wait between ready and the first page (#​1496)
  • analyze,build,dev,preview: Support builds without a server runtime (#​1505)
  • dev: Render dev-time errors with my-bad (#​1518)
  • dev: Tag every forwarded request with its id (2d9f1a84c)
  • dev: Copy everything a view shows with shift-y (#​1537)
  • dev: Trace requests on a timeline in the network view (#​1582)
  • preview: Track and allow taking over another preview process (#​1572)
🔥 Performance
  • dev: Warm the fork pool on first file change instead of on ready (9a10f713e)
  • dev: Warm a single fork by default, overridable with NUXT_DEV_FORK_POOL_SIZE (189796834)
  • nuxi: Do not bundle jiti (#​1409)
  • nuxi: ⚠️ Defer to project cli + drop nuxt <3.26 support (#​1410)
  • Disable mimalloc eager arena commit at cli entry (#​1411)
  • Keep youch, the registry and the update check off startup (#​1413)
  • Replace picocolors with node:util styleText (#​1416)
  • info,upgrade: Use confbox rather than pnpm-workspace-yaml (#​1425)
  • dev: Use builtin node SourceMap instead of source-map-js (#​1430)
  • dev: Use node createHash for hashing build manifest (8ff1c6768)
  • dev,module: Handle registry trailing slashes internally (0673103f1)
  • module: Swap fzf for fuzzysort (ff0cc23ec)
  • dev: Stop saves that change nothing from restarting the dev server (#​1435)
  • Keep engine and update checks off the version path (a3fa12951)
  • dev: Bind the dev server port before the config is loaded (88de5dade)
  • Drop unneeded node imports on fast path (a642f91cc)
  • dev: Improve time to first paint (#​1555)
  • dev: Paint the panel for nuxi dev before handing to project cli (11226daca)
  • upgrade: Resolve package manager version asynchronously (0b5c730c8)
  • Only load node:http when a proxy is configured (97d50f44e)
  • dev: Keep update check + confbox parsers off the panel startup path (693eba49d)
  • Load catalog, registry and docs index lazily (f140924fb)
🩹 Fixes
  • dev: Hide timestamp and remove outdated filters (cff4db224)
  • dev: Pin cloudflared version and shut tunnels down gracefully (0027fb298)
  • init: Make dependency install recoverable and package-manager aware (#​1386)
  • dev: Ignore link-local addresses in network urls (56c1eb721)
  • dev: Do not report or restart on broken pipes (66d21bd3e)
  • dev: Warn when a browser cannot be opened and caption qr codes (f1c378d49)
  • Remove duplicate, prefer 'nuxt' + add help snapshots (f9af29485)
  • _dev,start: Hide _dev and start commands from help output (#​1389)
  • typecheck: Only imply --build for solution-style tsconfigs (#​1390)
  • dev: Open inspector only in the process serving the app (#​1388)
  • upgrade: Find lockfile in nearest directory, not workspace root (#​1391)
  • dev: Settle in-flight responses when nuxt reloads (#​1392)
  • preview: Declare serve as an optional peer dependency (846ebd552)
  • upgrade: Take ownership of dependency installation (a04ec7207)
  • dev: Strip windows working directory from rendered errors (f6e923593)
  • init: Print cd step for single-character project directories (9ff68d94b)
  • Match exsolve resolution errors when @​nuxt/kit is missing (e7aa76073)
  • dev: Take us out of raw mode after clack finishes (5ef1f1b31)
  • Stop forcing --no-clear on programmatic commands (204331315)
  • dev: Unpause stdin when using clack spinners on windows (#​1395)
  • Don't mistake another package.json for nuxt's own (79a829d7f)
  • paths: Emit clickable hyperlinks for printed paths (27d82966f)
  • analyze: Skip prerendering routes when building (#​1400)
  • dev: Bind directly with --strictPort and translate bind errors (747c898e0)
  • dev: Reap every pooled fork on shutdown (c16f02ba5)
  • dev: Track cold forks in the pool so shutdown reaps them (dfef70fc4)
  • dev: Keep warming the pool once the app is served by a fork (f93bd1dcc)
  • dev: Warn on invalid --host and explain failed binds (98dcb1c4f)
  • dev: Omit default ports and decode urls in the dev url block (682c7732b)
  • dev: Drain connections before force-closing the dev server (678348adb)
  • dev: Keep serving during a hard restart using SO_REUSEPORT (#​1404)
  • dev: Handle a rejected reusePort option and a failed cold restart (ae9be91c4)
  • Resolve npm auth token from parseINI result (ec6b08a15)
  • dev: Do not end the dev session when a replaced fork exits non-zero (4538067b5)
  • dev: Trace youch into dist so its assets ship with the build (#​1407)
  • Do not read the project manifest when a dependency is missing (aeb022eb4)
  • dev: Do not restart when a client aborts a connection (#​1412)
  • Correctly report Vite version when using Vite+ (#​1415)
  • dev: Fall back to the project's loading template (#​1419)
  • init: ⚠️ Drop init command from @​nuxt/cli (#​1420)
  • dev: Show loading screen in initial startup (#​1421)
  • dev: Restore isolated environment host defaults (#​1422)
  • dev: Await close hooks on shutdown + warn on hanging processes (#​1424)
  • cli: Preserve local command failures (abfd7ebb5)
  • cli: Align Node warning with package engines (634eeb78b)
  • add-template: Expose template options (50e71e526)
  • analyze: Guard builds and simplify serving (23a5a6c62)
  • cleanup: Make directory removal safe and reliable (9e3b1cb15)
  • devtools: Harden wizard invocation (b6f2690a5)
  • info: Make project reporting resilient (90228167e)
  • init: Handle skipped setup steps (00b282839)
  • test: Resolve test utils from project (6ff5c366a)
  • typecheck: Avoid unnecessary preparation (07d86a3f4)
  • upgrade: Recreate selected workspace lockfile (292b63a56)
  • upgrade: Handle unsupported dedupe (33de9c8cb)
  • module: Harden module management flows (a08a775d3)
  • add: Respect project registry configuration (e0a6164dd)
  • build: Propagate failures and honor bare profile flag (8db925e0f)
  • dev: Isolate internal test overrides (5eee806ce)
  • dev: Harden listener edge cases (a7add3686)
  • preview: Handle listen options and output fallback (0cf13068d)
  • start: Execute Nitro preview commands faithfully (b80ed9c9a)
  • cli: Cap and score-filter module search results (75182da78)
  • deps: Upgrade to fuzzysort v4 (#​1443)
  • dev,info: Print nitro version nuxt depends on (#​1454)
  • dev: Use a strict port when _PORT is provided to _dev (#​1456)
  • dev: Close the listener when setup fails after binding (967f709fe)
  • Do not mistake a --cwd value for the command (ec34eeeb7)
  • dev: Validate lock and worker metadata before trusting it (53c42f171)
  • init: Only send GITHUB_TOKEN to github hosts (2a1e5b019)
  • add: Refuse to write a template outside the project (29e69b968)
  • dev: Reject a cloudflared version that escapes the release url or cache (7f02edf45)
  • module: Refuse to add a config key a spread or computed key could shadow (7ad4e6bdd)
  • module,upgrade: Resolve npmrc credentials as npm does, falling back to npm (ed7c524b8)
  • module: Drop Nuxt 2 leftovers from module search (6d9bc86d8)
  • module: Keep the closing bracket when removing consecutive inline entries (14903e599)
  • dev: Honour a bare --profile flag (4af0dc367)
  • dev: Recommend a CA root instead of disabling TLS verification (4b28edd7c)
  • init: Use a consistent separator in template lists (013f43f03)
  • Patch citty with hidden, multiple and inherit arg support (#​1457)
  • dev: Serve the loading page Nuxt would render, and stop it reloading itself (4d1edb470)
  • dev: Disable timestamps on the project's consola instance (#​1460)
  • add-template: Declare shorthand modifier flags (#​1467)
  • Add value hints to string args (#​1468)
  • init: Pass -- through npm create, document negative flags (5d39ad015)
  • capture: Sample fingerprint where output is erased (#​1472)
  • dev: Handle nuxt v5 for the new interactive ui (#​1473)
  • typecheck: Document negatable flags (68903670d)
  • dev: Properly attribute logs for nitro v3 (#​1474)
  • Abort on ctrl-c at suggestion prompts (34714dcb3)
  • dev: Close the help view with ? as well as h (6f6e53038)
  • dev: Group routes by kind and label method-less handlers (9d042af00)
  • dev: Stop racing the first render (#​1475)
  • docs: Reject unsafe tarball members before extraction (dd2214954)
  • dev: Verify sha-256 checksums for downloaded cloudflared binaries (3ad862d0d)
  • dev: Omit request headers from the rendered error page (7e69f2706)
  • dev: Strip the request attribution header from incoming requests (667f2a874)
  • dev: Reject unknown Host headers on internal dev endpoints (14c268e54)
  • Only report unknown flags that look like a typo (#​1485)
  • dev: Record request urls before middlewares rewrite them (#​1486)
  • dev: Surface boxed prompts + startup warnings on the panel (#​1487)
  • dev: Only draw the startup QR code in a terminal (39046324e)
  • cli: Drop clack gutter framing from redirected output (39420c955)
  • dev: Suggest a route that exists, only where it can be read (354d42bb8)
  • curl: Suggest a path every project serves when the URL is missing (14c16bf85)
  • dev: Time startup phases + stop hook names leaking into labels (#​1495)
  • add: Stop an entry's trailing comment swallowing a new separator (056579eb2)
  • build,dev: Return the path the cpu profile was written to (b5de69a3d)
  • analyze,build,dev,preview: Server build descriptor with nitro fallback (#​1509)
  • Report actual server health and error remedies (#​1515)
  • docs: Scope cache to registry and strip control characters (d8fc5d070)
  • dev,curl,task: Ignore lock file urls that don't match machine (26d7c6eda)
  • analyze: Check host header on analyze stats server (ddf1c2849)
  • Ignore project .npmrc for background update check (27ad8727c)
  • dev: Do not infer public mode from a non-loopback host (6a9633a94)
  • dev: Stop the selection at both ends of a view (#​1538)
  • dev: Pass the request through to the error channel (#​1540)
  • dev: Show an app log once when a fork serves it (#​1539)
  • dev: Repaint the panel on a clean screen after a resize (#​1545)
  • dev: Require a loopback peer for the error channel (#​1547)
  • dev: Add actionable error for missing cert file (#​1549)
  • dev: Handle keyboard input before dev server is up + running (#​1546)
  • dev: Read a key that shares a chunk with a terminal reply (#​1551)
  • dev: Omit error history from failure pages for remote peers (#​1552)
  • dev: Serve the error channel to remote peers, scoped (#​1554)
  • dev: Mint request ids from a random source (#​1557)
  • dev: Attribute requests at the nitro fetch level, leaving id header (#​1558)
  • dev: Forcibly close websocket connections when quitting (#​1532)
  • dev: End the process when ctrl-c arrives early (#​1560)
  • dev: Open inspector in nitro dev worker (#​1567)
  • dev: Hotfix by force closing nitro sockets (#​1570)
  • dev: Open nitro worker inspector from a plugin (54eebce32)
  • Skip corepack when it is not on the PATH (8babb655c)
  • Use setGlobalProxyFromEnv to enable proxy (#​1577)
  • Rewrap console before reporting a failed command (#​1578)
  • Avoid spinner frames + ansi help when not a tty (#​1576)
  • Migrate to package-manager-detector (#​1580)
  • dev: Skip reloads after dev server has shut down (1b1cd85f7)
  • Quote retry command arguments so they aren't expanded (a5ee0fc13)
  • dev: Measure wide characters when laying out tui (4eec38b1f)
  • dev: Close vite hmr upgrades that arrive before vite attaches (#​1588)
  • dev: Leave build asset upgrades to the bundler (#​1595)
  • dev: Make keyboard shortcuts more consistent (#​1596)
  • dev: Let a restarted fork reload changed .env values (#​1592)
💅 Refactors
  • Replace debug with obug (#​1372)
  • Migrate from semver to verkit (#​1379)
  • Use picocolors (17b2d0270)
  • dev: Use internal listener (#​1382)
  • Move source of truth from nuxi to @​nuxt/cli (#​1385)
  • Extract npm registry resolution into a shared util (571cc3a57)
  • module: Directly use magicast to update nuxt config (#​1396)
  • Normalise on rootDir in most usages (#​1398)
  • create-nuxt: Bundle citty instead of depending on it (51849b83a)
  • dev: Use source-map-js to map error frames (4582c2226)
  • module: Search with fzf instead of fuse.js (297bf242b)
  • info: Load nuxt.config natively and make jiti an optional peer (669bc5ee7)
  • Fetch JSON with native fetch instead of ofetch (ea82130e7)
  • module: Edit nuxt.config modules with oxc instead of magicast (97ded7d96)
  • Report first-run and lock failures as actionable errors (#​1445)
  • Share terminal background and brand colour detection (#​1459)
  • Use node's native type stripping (#​1553)
  • init: Derive supported package managers from package-manager-detector (4cba365a9)
  • Simplify + dedupe command helpers (887a4f9f6)
  • Share timeline between dev + build progress (2d00ab435)
  • dev: Simplify terminal ui + share nuxt version lookup (b405d643e)
  • dev: Simplify request plumbing + split dev utils (9e44f7509)
  • dev: Simplify fork pool, lockfile, takeover + shutdown (c70a8e539)
  • Share duration + terminal text helpers (50bb616aa)
📖 Documentation
  • Move cli documentation into repository (#​1465)
  • Update docs for current v4 (#​1471)
  • Correct dev, analyze and init command details (41a9fe554)
  • Correct conditional behaviour (c25d39250)
  • Mention requirements (53f33426a)
🏡 Chore
  • Bump pnpm version (2bdae69bd)
  • ⚠️ Bump node versions to support native typescript importing (436071221)
  • Add new binary paths for nightly release (af14cc8a3)
  • Exempt first-party packages from pnpm minimumReleaseAge (#​1434)
  • Log manifest hash change before clearing build dir (585278a9b)
  • Keep generated templates when the starter repo is unreachable (#​1447)
  • Remove narration comments (99c0bb814)
  • Note that init rejects where load reports (841fbc124)
  • Lint (51b98e087)
  • Add a comparison benchmark harness (#​1458)
  • Add a terminal capture harness and scenario fixtures (#​1461)
  • Bump uppt to v0.6.7 (fb86ed4b6)
  • Make nuxt-init spinner frames deterministic (#​1497)
  • Remove old todos, unneeded knip entries + orphan scripts (aa3b78b14)
  • ⚠️ Require node 22.21+ and drop env proxy support detection (e4aae2624)
  • Compress comments (d32f89872)
  • Count built-ins loaded on startup paths (579ee5d34)
  • Drop tinyexec + use nightly environment (4d0d3e908)
  • Trigger ci (ad36d1307)
✅ Tests
  • Assert on rendered terminal output with ansivision (1754688e2)
  • Cover shortcut error paths (0e780badf)
  • Fix types (a94b9f5d7)
  • Use file URL when importing loader in subprocess (b6f5b1175)
  • Stub provider and environment detection in dev output tests (d5c583ea7)
  • Give each dev spec its own fixture copy (fcfd1bf2f)
  • Isolate runtime e2e ports in dev tests and fix force-kill (d05718dc1)
  • generate: Cover build overrides (f850a17c9)
  • Give each dev fixture its own vite cache (e35dd95e8)
  • Cover the banner path with a single version to join (a1a4cb910)
  • Give servers under test a realistic startup budget (f1a664b95)
  • Cover error page rendering, cleanup guards and dev listen options (e991256c8)
  • Cover console raw mode, config loading and info box formatting (ff8529a65)
  • Cover registry auth scoping and dev server responses (3a5aa2c34)
  • Assert nuxt info reports config keys without their values (0b45675e9)
  • Cover the dev server lifecycle with a stubbed kit (dd68ab8ac)
  • Assert config edits hold their invariants across config shapes (672c1014f)
  • Cover the dev command takeover, handover and fork pool paths (8112e5039)
  • Cover the interactive init flow and its fallbacks (f8338beef)
  • Cover upgrade preconditions, install failures and the pnpm catalog path (e12e139a0)
  • Cover typecheck checker selection, install advice and build mode (1e3e80339)
  • Cover dev initialize wiring, close ordering and profiling (e32ea88fc)
  • Stop the command e2e suite mutating the shared playground (bd194130f)
  • Stop collecting scaffolded command fixtures as test files (a36ce443e)
  • Mark bun websockets as supported + fix animation detection (63b5b7f35)
  • Freeze clock when testing startup logs (eacb946f3)
  • Add additional tests + harden cli (#​1500)
  • Update snapshot (9e180285b)
  • Cover a failed render being served once (6fa982d4f)
  • Fix some bugs in benchmark tests + add three more (#​1550)
  • Stop two fixtures racing the work they are checking (#​1548)
  • Remove redundant tests + fix flakes ([325ffa20b](https:/

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from danielroe as a code owner October 12, 2026 00:24
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​nuxt/​cli@​4.0.1981007594100
Updatedpkg-types@​2.3.1 ⏵ 2.3.3100 +1100100 +187 -2100
Addedtinyexec@​1.3.110010010088100

View full report

@pkg-pr-new

pkg-pr-new Bot commented Oct 12, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@nuxt/module-builder@804

commit: 0ec900f

This branch has not been deployed

No deployments
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.

0 participants