nuxt-i18n-micro
nuxt-i18n-micro

I18n Micro 是一個快速、簡單、輕量級的國際化 (i18n) 模組。

npm versionnpm downloadsLicenseDonate

logo

Nuxt I18n Micro

Nuxt I18n Micro 是一個快速、簡單、輕量級的 Nuxt 國際化 (i18n) 模組。儘管其體積小巧,但它在設計時充分考慮了大型專案,與 nuxt-i18n 等傳統 i18n 解決方案相比,提供了顯著的效能改進。該模組從頭開始構建,旨在實現高效率,重點在於最小化構建時間、減少伺服器負載和縮小捆綁包大小。

為什麼選擇 Nuxt I18n Micro?

建立 Nuxt I18n Micro 模組是為了解決原始 nuxt-i18n 模組中發現的關鍵效能問題,尤其是在高流量環境和具有大型翻譯檔案的專案中。nuxt-i18n 的主要問題包括:

  • 高記憶體消耗:在構建和執行時消耗大量記憶體,導致效能瓶頸。
  • 慢效能:尤其是在大型翻譯檔案的情況下,會導致構建時間和伺服器響應明顯變慢。
  • 大捆綁包大小:生成大型捆綁包,對應用程式效能產生負面影響。
  • 記憶體洩漏和錯誤:在重負載下,已知會發生記憶體洩漏和不可預測的行為。

效能比較

為了展示 Nuxt I18n Micro 的效率,我們在相同條件下進行了測試。兩個模組都在相同的硬體上使用 10MB 的翻譯檔案進行了測試。

構建時間和資源消耗

Исправленные значения для сравнения

Nuxt I18n v9:

  • 總大小(構建):13.7 MB(2.2 MB gzip)
  • 最大 CPU 使用率: 248.50%
  • 最大記憶體使用量:3057.23 MB
  • 耗時:0h 0m 12s

Nuxt I18n Micro:

  • 總大小(構建):229 KB(152 KB gzip)— 小 13.47 MB 或 98.36% (gzip 小 2.05 MB 或 93.10%)
  • 最大 CPU 使用率:195.00% — 降低 21.53%
  • 最大記憶體使用量:1140.63 MB — 減少 1916.6 MB 記憶體
  • 耗時:0h 0m 7s — 快 5 秒

伺服器效能(10k 請求)

Nuxt I18n v9:

  • 每秒請求數:34 #/秒(平均)
  • 每個請求的時間:1487.60 毫秒(平均)
  • 最大記憶體使用量:9958.67 MB

Nuxt I18n Micro:

  • 每秒請求數:339 #/秒(平均)— 每秒多 305 個請求(增加 897.06%)
  • 每個請求的時間:5.10 毫秒(平均)— 快 1482.50 毫秒(減少 99.66%)
  • 最大記憶體使用量:405.20 MB — 減少 9553.47 MB 記憶體使用量(減少 95.93%)

這些結果清楚地表明,Nuxt I18n Micro 在所有關鍵領域都顯著優於原始模組。

主要功能

  • 🌐 小巧而強大:儘管體積小巧,Nuxt I18n Micro 專為大型專案設計,注重效能和效率。
  • 最佳化構建和執行時:減少構建時間、記憶體使用和伺服器負載,使其成為高流量應用的理想選擇。
  • 🛠 極簡設計:該模組僅圍繞 5 個元件(1 個模組和 4 個外掛)構建,易於理解、擴充套件和維護。
  • 📏 高效路由:無論有多少語言環境,都只生成 2 個路由,這得益於基於動態正則表示式的路由,這與其他為每個語言環境生成單獨路由的 i18n 模組不同。
  • 🗂 精簡的翻譯載入:僅支援 JSON 檔案,翻譯分為用於通用文字(例如選單)的全域性檔案和頁面特定檔案,這些檔案在 dev 模式下如果不存在則會自動生成。

快速設定

在你的 Nuxt 應用中安裝模組,使用

npm install nuxt-i18n-micro

然後,將其新增到你的 nuxt.config.ts

export default defineNuxtConfig({
  modules: [
    'nuxt-i18n-micro',
  ],
  i18n: {
    locales: [
      { code: 'en', iso: 'en-US', dir: 'ltr' },
      { code: 'fr', iso: 'fr-FR', dir: 'ltr' },
      { code: 'ar', iso: 'ar-SA', dir: 'rtl' },
    ],
    defaultLocale: 'en',
    translationDir: 'locales',
    meta: true,
  },
})

就是這樣!你現在可以在你的 Nuxt 應用中使用 Nuxt I18n Micro 了。

文件

外掛方法

效能

效能測試結果

元件

搜尋引擎最佳化

遷移

貢獻