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 了。