Vite Config
Vite Config 是一个用于管理 Vite 环境变量的工具包,提供了类型安全的环境变量访问和类型转换功能。
特性
- 提供类型安全的环境变量访问
- 支持环境变量类型转换
- 支持环境变量上下文管理
- 提供环境状态检查功能
- 类型安全的 API
安装
npm install @kazura/vite-config
使用方法
基本使用
import { Config, ConfigContextHolder } from '@kazura/vite-config'
// 创建配置实例
const config = new Config(import.meta.env)
// 设置全局上下文
ConfigContextHolder.setContext(config)
// 获取全局上下文
const globalConfig = ConfigContextHolder.getContext()
// 清除全局上下文
ConfigContextHolder.clearContext()
环境状态检查
import { Config } from '@kazura/vite-config'
const config = new Config(import.meta.env)
// 检查是否为开发环境
if (config.isDevelopment()) {
console.log('Running in development mode')
}
// 检查是否为生产环境
if (config.isProduction()) {
console.log('Running in production mode')
}
// 检查是否为服务端渲染
if (config.isServerSideRendering()) {
console.log('Running in SSR mode')
}
// 检查当前模式
if (config.isModeEqualTo('test')) {
console.log('Running in test mode')
}
环境变量访问
import { Config } from '@kazura/vite-config'
const config = new Config(import.meta.env)
// 获取基础 URL
const baseUrl = config.getBaseUrl()
// 获取当前模式
const mode = config.getMode()
// 获取自定义环境变量
const apiKey = config.get('API_KEY')
// 获取字符串类型的环境变量
const apiUrl = config.getStringFromEnv('API_URL')
// 获取数字类型的环境变量
const port = config.getNumberFromEnv('PORT')
// 获取布尔类型的环境变量
const debug = config.getBooleanFromEnv('DEBUG')
API 参考
Config
构造函数
constructor(env: ImportMetaEnv)
创建一个 Config 实例。
参数:
env
: Vite 环境变量对象
isDevelopment
isDevelopment(): boolean
检查是否为开发环境。
返回值:
- 如果是开发环境则返回 true,否则返回 false
isProduction
isProduction(): boolean
检查是否为生产环境。
返回值:
- 如果是生产环境则返回 true,否则返回 false
isServerSideRendering
isServerSideRendering(): boolean
检查是否为服务端渲染。
返回值:
- 如果是服务端渲染则返回 true,否则返回 false
getBaseUrl
getBaseUrl(): string
获取基础 URL。
返回值:
- 基础 URL 字符串
getMode
getMode(): string
获取当前模式。
返回值:
- 当前模式字符串
isModeEqualTo
isModeEqualTo(mode: string): boolean
检查当前模式是否等于指定模式。
参数:
mode
: 要比较的模式
返回值:
- 如果当前模式等于指定模式则返回 true,否则返回 false
get
get(key: string): any
获取环境变量的值。
参数:
key
: 环境变量键名
返回值:
- 环境变量的值
getStringFromEnv
getStringFromEnv(key: string): string
获取字符串类型的环境变量。
参数:
key
: 环境变量键名
返回值:
- 环境变量的字符串值,如果不存在则返回空字符串
getNumberFromEnv
getNumberFromEnv(key: string): number
获取数字类型的环境变量。
参数:
key
: 环境变量键名
返回值:
- 环境变量的数字值,如果不存在则返回 0
getBooleanFromEnv
getBooleanFromEnv(key: string): boolean
获取布尔类型的环境变量。
参数:
key
: 环境变量键名
返回值:
- 环境变量的布尔值,如果不存在则返回 false
ConfigContextHolder
getContext
static getContext(): Config | null
获取全局配置上下文。
返回值:
- 配置实例或 null
setContext
static setContext(context: Config): void
设置全局配置上下文。
参数:
context
: 配置实例
clearContext
static clearContext(): void
清除全局配置上下文。
注意事项
- 使用 TypeScript 来获得更好的类型提示
- 环境变量名称区分大小写
- 使用类型转换方法时注意默认值
- 全局上下文是单例的,注意及时清理
- 环境变量值应该是字符串类型
示例
应用配置
import { Config, ConfigContextHolder } from '@kazura/vite-config'
// 创建配置实例
const config = new Config(import.meta.env)
// 设置全局上下文
ConfigContextHolder.setContext(config)
// 获取应用配置
function getAppConfig() {
return {
apiUrl: config.getStringFromEnv('API_URL'),
port: config.getNumberFromEnv('PORT'),
debug: config.getBooleanFromEnv('DEBUG'),
environment: config.getMode(),
}
}
环境适配
import { Config } from '@kazura/vite-config'
const config = new Config(import.meta.env)
function setupEnvironment() {
if (config.isDevelopment()) {
// 开发环境配置
console.log('Development mode')
console.log('API URL:', config.getStringFromEnv('API_URL'))
} else if (config.isProduction()) {
// 生产环境配置
console.log('Production mode')
console.log('API URL:', config.getStringFromEnv('API_URL'))
}
}
服务配置
import { Config } from '@kazura/vite-config'
const config = new Config(import.meta.env)
function getServerConfig() {
return {
host: config.getStringFromEnv('HOST'),
port: config.getNumberFromEnv('PORT'),
ssl: config.getBooleanFromEnv('SSL'),
baseUrl: config.getBaseUrl(),
}
}
特性开关
import { Config } from '@kazura/vite-config'
const config = new Config(import.meta.env)
function isFeatureEnabled(featureName: string): boolean {
return config.getBooleanFromEnv(`FEATURE_${featureName.toUpperCase()}`)
}
// 使用示例
if (isFeatureEnabled('newUI')) {
// 启用新 UI
}