Stories

Detail Return Return

🚀 meta-env-typed:讓所有前端項目的環境變量都擁有完美類型安全! - Stories Detail

🚀 meta-env-typed:讓所有前端項目的環境變量都擁有完美類型安全!

在前端開發中,環境變量的類型安全問題常常被忽視,卻可能引發生產環境的重大隱患。手動維護類型定義繁瑣易錯,不同構建工具的變量規則又各不相同——現在,這些問題都將成為歷史!meta-env-typed 橫空出世,作為一款跨構建工具的環境變量類型解決方案,它能自動為你的項目注入完整的 TypeScript 支持,讓環境變量的使用既安全又高效!

🌟 核心特性:不止於類型安全

🔄 全自動類型生成,告別手寫煩惱

無需手動編寫 env.d.ts!插件會自動掃描你的 .env 文件,實時生成精確的類型定義。無論是變量名拼寫錯誤還是類型不匹配,TypeScript 都會立即給出提示,從源頭避免低級錯誤。

🛠️ 多構建工具兼容,一庫多用

打破構建工具壁壘,當前已支持:

  • Vite:零配置接入,無縫集成開發流程
  • rsbuild:深度適配,同樣享受一流類型體驗
    即將支持:rspack、webpack 等更多工具,歡迎在 GitHub 留言投票支持你需要的工具!)

🔑 突破前綴限制,變量命名自由

不再受限於 VITE_RSBUILD_ 等強制前綴!無論是 API_URL 還是 APP_VERSION,任意環境變量都能獲得完整的類型支持,靈活滿足項目需求。

🚨 生產級安全校驗

在開發和構建階段自動檢查環境變量是否缺失,提前攔截因配置錯誤導致的線上問題。配合 CI/CD 流程使用,讓配置相關的 Bug 無處遁形。

⚡️ 零配置開箱即用,高級配置按需擴展

默認配置已滿足 90% 的使用場景,同時支持自定義類型文件路徑、環境前綴、變量值顯示等高級需求,兼顧易用性和靈活性。

📦 快速上手:3 步搞定配置

1. 安裝依賴

# 使用 npm
npm install meta-env-typed -D

# 使用 yarn
yarn add meta-env-typed -D

# 使用 pnpm
pnpm add meta-env-typed -D

2. 集成到構建工具

👉 Vite 項目配置
// vite.config.ts
import { defineConfig } from 'vite'
import envTyped from 'meta-env-typed/vite'

export default defineConfig({
  plugins: [
    envTyped() // 只需添加這一行
  ]
})
👉 rsbuild 項目配置
// rsbuild.config.ts
import { defineConfig } from '@rsbuild/core'
import { envTyped } from 'meta-env-typed/rsbuild'

export default defineConfig({
  plugins: [
    envTyped() // 一鍵集成
  ]
})

3. 享受類型提示

配置完成後,直接在代碼中使用環境變量,即可獲得完整的類型提示和校驗:

// 自動提示變量名和類型,拼寫錯誤立即報錯
console.log(import.meta.env.API_URL) 
console.log(process.env.DB_HOST)

💡 高級使用技巧

🔧 自定義配置選項

根據項目需求調整插件行為:

envTyped({
  envDir: './envs', // 指定環境變量文件目錄
  envPrefix: ['API_', 'APP_'], // 自定義變量前綴
  filePath: './src/types/env.d.ts', // 自定義類型文件路徑
  valueInType: true // 在類型中包含變量值(便於調試)
})

🌍 多環境文件處理

支持 .env.development.env.production 等多環境文件,類型定義會根據當前構建模式自動切換。配合 --mode 參數使用,輕鬆管理不同環境的配置:

// package.json
{
  "scripts": {
    "dev": "vite --mode development",
    "build:test": "rsbuild build --mode test"
  }
}

🛡️ 敏感信息處理

建議在 .gitignore 中忽略實際環境變量文件,只提交 .env.example 作為模板,既保證類型生成,又避免敏感信息泄露:

# .gitignore
.env
.env.*
!.env.example

🤝 貢獻與反饋

如果你在使用過程中遇到問題,或有新的功能需求,歡迎通過以下方式參與貢獻:

  • GitHub 倉庫:https://github.com/JsonLee12138/meta-env-typed
  • 提交 Issue:報告 Bug 或提出需求
  • 投票支持工具:在 Issues 中留言你需要的構建工具支持

你的反饋將直接影響功能迭代優先級,讓我們一起打造更完善的環境變量類型解決方案!

📄 許可證與資源

  • 本項目採用 MIT 許可證,自由使用、修改和分發
  • 詳細文檔:查看倉庫 README 獲取完整配置指南和高級用法
如果你覺得這個工具對你有幫助,別忘了給 GitHub 倉庫點一個 ⭐ Star,這是對開發者最大的支持!

總結

meta-env-typed 徹底革新了前端環境變量的管理方式,通過自動類型生成、多工具兼容和靈活配置,讓類型安全不再受限於特定構建工具。無論是 Vite 還是 rsbuild 項目,都能輕鬆獲得一流的環境變量使用體驗,從開發到生產全程保障配置安全。

現在就接入 meta-env-typed,讓環境變量的類型問題成為歷史,專注於更有價值的業務開發吧!

Add a new Comments

Some HTML is okay.