Repository navigation
perf(i18n): load the i18n runtime only when the app uses i18n - #361
Merged
Merged
Conversation
Route rule matching imported the nuxtseo-shared i18n runtime into every server bundle. A server template now resolves it to an identity function when the app has no i18n.
commit: |
|
| Module | Client gzip | Server raw |
|---|---|---|
| @nuxtjs/robots | 608 B | 164 kB 🟢 -3.8 kB (-2.2%) |
Package files (6)
Rows overlap and include unused code. These totals do not measure deployed output or npm downloads.
Excludes dependency files, types, source maps, and other non-code files.
| Package files | Summed gzip | Raw | Δ gzip |
|---|---|---|---|
| @nuxtjs/robots · export . | 7.2 kB | 27 kB | 🔴 +73 B (+1.0%) |
| @nuxtjs/robots · export ./content | 292 B | 503 B | — |
| @nuxtjs/robots · export ./util | 467 B | 784 B | — |
| @nuxtjs/robots · built code files | 43 kB | 140 kB | 🔴 +310 B (+0.7%) |
| @nuxtjs/robots · app source files | 3.3 kB | 7.2 kB | — |
| @nuxtjs/robots · server source files | 9.1 kB | 21 kB | 🔴 +164 B (+1.8%) |
Dependencies (8)
Declared dependencies. Their installed size does not show runtime cost.
| Package | Dependency | Requested |
|---|---|---|
| @nuxtjs/robots | @fingerprintjs/botd | catalog: |
| @nuxtjs/robots | @nuxt/kit | catalog: |
| @nuxtjs/robots | @vueuse/core | catalog: |
| @nuxtjs/robots | consola | catalog: |
| @nuxtjs/robots | defu | catalog: |
| @nuxtjs/robots | nuxt-site-config | catalog: |
| @nuxtjs/robots | nuxtseo-shared | catalog: |
| @nuxtjs/robots | ufo | catalog: |
How this is measured
- Compare the same app with and without the module.
- Client: all emitted JS/CSS, summed per-file gzip. This includes lazy chunks.
- Server: deployed files, including external dependencies. Source maps are excluded.
- Default module settings, Node server preset. Memory and request speed are outside this report.
Base: main @ c0d6143 · 2026-10-13 · differences below 16 B are ignored
Contributor
Author
Action required: The pull request has no unreleased merge on the default branch. |
6 tasks
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.
🔗 Linked issue
❓ Type of change
📚 Description
getPathRobotConfigimported thenuxtseo-sharedi18n runtime, so every server bundle shipped it, even without@nuxtjs/i18n. A#nuxt-robots/i18n.mjsserver template now loads the locale prefix code only when the app has i18n, and an identity function otherwise. Without i18n, the server bundle drops 3,712 bytes (935 gzip) on the Nuxt 4basicfixture and 3,224 bytes (1,067 gzip) on the Nuxt 5 fixture.