Repository navigation
Conversation
Nuxt builds its Vue server renderer as a separate `ssr` Vite environment beside `nitro`, and its analyze plugin writes `ssr.html` for it beside `client.html` and `nitro.html` (nuxt/nuxt fix linked in the PR). The stats server now serves it at `/ssr` and links it from the index. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CLI benchmark
Full report
|
| Setting | Value |
|---|---|
| Baseline | ref:ad8153ae532df2ed07bf6fd84d8f5ae1e766532f (v4.0.1) |
| Head | local packages/nuxt-cli at 28d3608 (v4.0.1) |
| Node | v24.22.0 |
| OS | Linux 6.17.0 (kernel 6.17.0-1022-azure) |
| CPU | INTEL(R) XEON(R) PLATINUM 8573C x 4 |
| Memory | 15.6 GB |
| Load average at start | 0.92, 0.28, 0.10 |
| Run started | 2026-10-18T02:36:44.004Z |
Cold CLI startup
Median of 15 interleaved runs per command, one warmup discarded.
| Command | baseline v4.0.1 median | head v4.0.1 median | Delta | baseline v4.0.1 min / p95 | head v4.0.1 min / p95 |
|---|---|---|---|---|---|
nuxt --version |
54 ms | 52 ms | -3.1% | 51 ms / 57 ms | 49 ms / 58 ms |
nuxt --version (first output byte) |
51 ms | 49 ms | -3.4% | 48 ms / 54 ms | 47 ms / 55 ms |
nuxt --help |
105 ms | 108 ms | +2.6% | 100 ms / 110 ms | 102 ms / 113 ms |
nuxt --help (first output byte) |
102 ms | 105 ms | +3.2% | 97 ms / 106 ms | 99 ms / 110 ms |
nuxt dev --help |
85 ms | 84 ms | -1.3% | 79 ms / 89 ms | 79 ms / 87 ms |
nuxt dev --help (first output byte) |
82 ms | 81 ms | -1.4% | 76 ms / 86 ms | 76 ms / 84 ms |
nuxt <unknown-command> (no-op) |
115 ms | 115 ms | -0.5% | 110 ms / 122 ms | 108 ms / 124 ms |
nuxt <unknown-command> (no-op) (first output byte) |
111 ms | 111 ms | -0.1% | 107 ms / 118 ms | 104 ms / 120 ms |
Module load cost
Counted with a module.registerHooks load hook, compile cache disabled. Counts every JS module actually evaluated on that code path (native addons excluded). Built-ins loaded after bootstrap are counted separately, including the internal modules they load.
| Command | baseline v4.0.1 modules | head v4.0.1 modules | Delta | baseline v4.0.1 source bytes | head v4.0.1 source bytes | Delta | baseline v4.0.1 built-ins | head v4.0.1 built-ins | Delta |
|---|---|---|---|---|---|---|---|---|---|
nuxt --version |
35 | 35 | 0.0% | 298.0 kB | 298.0 kB | 0.0% | 29 | 29 | 0.0% |
nuxt --help |
135 | 135 | 0.0% | 847.7 kB | 847.9 kB | +0.0% | 90 | 90 | 0.0% |
nuxt dev --help |
64 | 64 | 0.0% | 455.5 kB | 455.5 kB | 0.0% | 90 | 90 | 0.0% |
Install footprint and published tarball
Each version installed on its own into an empty project with nothing but @nuxt/cli as a dependency, so the tree is exactly the CLI and its transitive dependencies. npm cache is warm and the registry is only consulted for metadata, so install wall time is indicative, not a network benchmark.
| Metric | baseline v4.0.1 | head v4.0.1 | Delta |
|---|---|---|---|
Direct dependencies of @nuxt/cli |
23 | 23 | 0.0% |
| Packages in the installed tree (unique name@version) | 39 | 39 | 0.0% |
| Unique package names | 39 | 39 | 0.0% |
| Package directories on disk (cross-check) | 32 | 32 | 0.0% |
Installed node_modules on disk |
2.46 MB | 2.46 MB | +0.0% |
| Installed files | 436 | 436 | 0.0% |
| Install wall time (warm npm cache, median of 3) | 1.02 s | 1.03 s | +0.6% |
| Published tarball (packed) | 241.5 kB | 241.5 kB | +0.0% |
| Published tarball (unpacked) | 783.9 kB | 784.0 kB | +0.0% |
| Files in tarball | 101 | 101 | 0.0% |
Interleaved runs on a shared runner: trust the deltas, not the absolute timings. The dev, restart and build suites run locally via pnpm bench:cli.
commit: |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1625 +/- ##
=======================================
Coverage ? 84.14%
=======================================
Files ? 181
Lines ? 11591
Branches ? 3319
=======================================
Hits ? 9753
Misses ? 1548
Partials ? 290 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Merging this PR will not alter performance
|
🔗 Linked issue
Pairs with nuxt/nuxt#36630.
📚 Description
On Nuxt 5 the server builds as two Vite environments,
ssr(the Vue renderer) andnitro. With nuxt/nuxt#36630,nuxt analyzewrites a report for each,ssr.htmlandnitro.html, besideclient.html. The stats server only knew/clientand/nitro, so the SSR report was written but never served.This adds
/ssrto the served reports and links it from the index. On a Nuxt version that doesn't writessr.html, the route answers with the existingThis report was not generated by the analyze build.response, the same as/nitrodoes today.pnpm exec vitest run packages/nuxt-cli/test/unit/commands/analyze.spec.tspasses (8/8), andeslintis clean on the file.🤖 Generated with Claude Code