nuxt-i18n-micro 3.24.0 → 3.24.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -22,41 +22,41 @@ The `Nuxt I18n Micro` module was created to address critical performance issues
22
22
 
23
23
  ### Performance Comparison
24
24
 
25
- To showcase the efficiency of `Nuxt I18n Micro`, we conducted tests under identical conditions. Both modules were tested with a 10MB translation file on the same hardware. We also include a **plain-nuxt** baseline (no i18n module) to measure the real overhead.
25
+ To showcase the efficiency of `Nuxt I18n Micro`, we ran the same fixture suite (`test/performance.test.ts`) against **`@nuxtjs/i18n@10.6.0`** on the same hardware. We also include a **plain-nuxt** baseline (no i18n module) to measure the real overhead.
26
26
 
27
27
  #### Build Time and Resource Consumption
28
28
 
29
- > **Note:** The `plain-nuxt` baseline is a minimal implementation created solely for benchmarking purposes. It loads data directly from JSON files without any i18n logic. Real-world applications will have more complexity and higher resource usage.
29
+ > **Note:** The `plain-nuxt` baseline is a minimal implementation created solely for benchmarking purposes. It loads data directly from JSON files without any i18n logic. Real-world applications will have more complexity and higher resource usage. Latest run uses `@nuxtjs/i18n@10.6.0`.
30
30
 
31
31
  | Project | Build Time | Code Bundle | Max Memory | Max CPU |
32
32
  |---------|------------|-------------|------------|---------|
33
- | **plain-nuxt** (baseline) | 6.50s | 1.35 MB | 745 MB | 195% |
34
- | **i18n-micro** | 14.95s | 1.48 MB | 1,175 MB | 243% |
35
- | **i18n v10** | 82.26s | 19.24 MB | 9,117 MB | 419% |
33
+ | **plain-nuxt** (baseline) | 11.30s | 1.19 MB | 1,098 MB | 101% |
34
+ | **i18n-micro** | 7.72s | 1.4 MB | 975 MB | 210% |
35
+ | **@nuxtjs/i18n v10.6** | 15.75s | 15.26 MB | 2,138 MB | 195% |
36
36
 
37
37
  > **Code Bundle** = JavaScript/CSS code only (excludes translation JSON files).
38
38
  > i18n-micro stores translations as lazy-loaded JSON files, keeping the code bundle minimal.
39
39
 
40
- - **i18n-micro vs baseline**: +8.45s build, +131 KB code, +430 MB memory
41
- - **i18n v10 vs baseline**: +75.76s build, +17.89 MB code, +8,372 MB memory
40
+ - **i18n-micro vs baseline**: −3.58s build, +0.21 MB code, −123 MB memory
41
+ - **@nuxtjs/i18n v10.6 vs baseline**: +4.45s build, +14.07 MB code, +1,040 MB memory
42
42
 
43
43
  #### Stress Test Results (Requests per Second)
44
44
 
45
45
  | Project | Avg Response | RPS (Artillery) | Max Memory |
46
46
  |---------|--------------|-----------------|------------|
47
- | **plain-nuxt** | 453 ms | 274 | 324 MB |
48
- | **i18n-micro** | 437 ms | 278 | 275 MB |
49
- | **i18n v10** | 1,177 ms | 51 | 1,095 MB |
47
+ | **plain-nuxt** | 430 ms | 273 | 369 MB |
48
+ | **i18n-micro** | 381 ms | 290 | 638 MB |
49
+ | **@nuxtjs/i18n v10.6** | 709 ms | 195 | 521 MB |
50
50
 
51
- #### Comparison: i18n v10 vs i18n-micro
51
+ #### Comparison: `@nuxtjs/i18n` v10.6 vs i18n-micro
52
52
 
53
- - **Code Bundle**: 17.76 MB smaller (i18n-micro: 1.48 MB vs i18n v10: 19.24 MB)
54
- - **Build Time**: 67.31s faster (i18n-micro: 14.95s vs i18n v10: 82.26s)
55
- - **Max Memory (build)**: 7,942 MB less (i18n-micro: 1,175 MB vs i18n v10: 9,117 MB)
56
- - **Average Response Time**: 740 ms faster (i18n-micro: 437 ms vs i18n v10: 1,177 ms)
57
- - **Requests Per Second**: 227 more (i18n-micro: 278 vs i18n v10: 51)
53
+ - **Code Bundle**: 13.86 MB smaller (i18n-micro: 1.4 MB vs v10.6: 15.26 MB)
54
+ - **Build Time**: 8.03s faster (i18n-micro: 7.72s vs v10.6: 15.75s)
55
+ - **Max Memory (build)**: 1,163 MB less (i18n-micro: 975 MB vs v10.6: 2,138 MB)
56
+ - **Average Response Time**: 328 ms faster (i18n-micro: 381 ms vs v10.6: 709 ms)
57
+ - **Requests Per Second**: 95 more (i18n-micro: 290 vs v10.6: 195)
58
58
 
59
- These results clearly demonstrate that `Nuxt I18n Micro` significantly outperforms the original module in every critical area while staying close to the plain Nuxt baseline. See the [full benchmark report](https://s00d.github.io/nuxt-i18n-micro/guide/performance-results) for methodology and charts.
59
+ `@nuxtjs/i18n` v10.6 is much closer than older 10.1-era numbers; micro still leads on build time, build RSS, code size, and Artillery RPS/latency on these fixtures. See the [full benchmark report](https://s00d.github.io/nuxt-i18n-micro/guide/performance-results) for methodology and charts.
60
60
 
61
61
  ## Key Features
62
62
 
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-i18n-micro/_nuxt/2SuXn1ER.js"}}</script><link rel="stylesheet" href="/__nuxt-i18n-micro/_nuxt/entry.CJGrD2VA.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/2SuXn1ER.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/it0enEWC.js"><script type="module" src="/__nuxt-i18n-micro/_nuxt/2SuXn1ER.js" crossorigin></script><link rel="prefetch" as="style" crossorigin href="/__nuxt-i18n-micro/_nuxt/error-500.B6zG41uy.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/avrqwMZR.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/COsMbydw.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-i18n-micro",buildId:"c22b2412-065d-4c05-8e39-2865326c8cb7",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1785441631956,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-i18n-micro/_nuxt/Bwak6g3b.js"}}</script><link rel="stylesheet" href="/__nuxt-i18n-micro/_nuxt/entry.CJGrD2VA.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/Bwak6g3b.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/DBXvRcU1.js"><script type="module" src="/__nuxt-i18n-micro/_nuxt/Bwak6g3b.js" crossorigin></script><link rel="prefetch" as="style" crossorigin href="/__nuxt-i18n-micro/_nuxt/error-500.BcWSpGYy.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/p3h4sA5-.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/DbtvxgAm.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-i18n-micro",buildId:"225477ec-bfda-48f4-aca0-4fc5d067bae9",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1785480461137,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-i18n-micro/_nuxt/2SuXn1ER.js"}}</script><link rel="stylesheet" href="/__nuxt-i18n-micro/_nuxt/entry.CJGrD2VA.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/2SuXn1ER.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/it0enEWC.js"><script type="module" src="/__nuxt-i18n-micro/_nuxt/2SuXn1ER.js" crossorigin></script><link rel="prefetch" as="style" crossorigin href="/__nuxt-i18n-micro/_nuxt/error-500.B6zG41uy.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/avrqwMZR.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/COsMbydw.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-i18n-micro",buildId:"c22b2412-065d-4c05-8e39-2865326c8cb7",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1785441631956,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-i18n-micro/_nuxt/Bwak6g3b.js"}}</script><link rel="stylesheet" href="/__nuxt-i18n-micro/_nuxt/entry.CJGrD2VA.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/Bwak6g3b.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/DBXvRcU1.js"><script type="module" src="/__nuxt-i18n-micro/_nuxt/Bwak6g3b.js" crossorigin></script><link rel="prefetch" as="style" crossorigin href="/__nuxt-i18n-micro/_nuxt/error-500.BcWSpGYy.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/p3h4sA5-.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-i18n-micro/_nuxt/DbtvxgAm.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-i18n-micro",buildId:"225477ec-bfda-48f4-aca0-4fc5d067bae9",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1785480461137,false]</script></body></html>