Skip to content

JsonLee12138/vite-plugin-env-typed

Repository files navigation

Vite Plugin Env Typed

English Documentation

迁移通知

注意:本仓库已废弃,所有功能已迁移至 meta-env-typed

请使用新的仓库以获取最新功能和更新。

介绍

vite-plugin-env-typed 是一个Vite插件,可自动生成 import_meta.d.ts 文件,为您的环境变量提供完整的TypeScript类型支持。使用此插件,您可以在开发过程中获得更好的类型提示和类型检查。

特性

  • 🚀 自动生成环境变量类型定义
  • 💡 完整的TypeScript支持
  • ⚡️ 零配置,即开即用
  • 🔒 类型安全的环境变量访问
  • 🔄 当环境文件变更时自动更新类型定义

安装

# 使用npm
npm install vite-plugin-env-typed -D

# 使用yarn
yarn add vite-plugin-env-typed -D

# 使用pnpm
pnpm add vite-plugin-env-typed -D

使用方法

  1. 在您的 vite.config.ts 中配置插件:
import { defineConfig } from 'vite'
import envTyped from 'vite-plugin-env-typed'

export default defineConfig({
  plugins: [
    envTyped({
      // 可选:指定环境模式,默认为process.env.NODE_ENV或import.meta.env.MODE
      mode: 'development',
      // 可选:指定环境文件目录,默认为process.cwd()
      envDir: './',
      // 可选:指定环境变量前缀,默认为'VITE_'
      envPrefix: ['VITE_', 'CUSTOM_'],
      // 可选:指定类型定义文件输出路径,默认为'src/import_meta.d.ts'
      filePath: './src/types/import_meta.d.ts',
      // 可选:是否在类型中包含实际值,默认为false
      valueInType: true
    })
  ]
})
  1. 在您的代码中使用环境变量:
// 现在您可以获得完整的类型提示
console.log(import.meta.env.VITE_API_URL)

配置选项

该插件支持以下配置选项:

interface EnvTypedOptions {
  /**
   * 环境模式
   * @default process.env.NODE_ENV或import.meta.env.MODE
   */
  mode?: 'development' | 'production' | string

  /**
   * 环境文件目录
   * @default process.cwd()
   */
  envDir?: string

  /**
   * 环境变量前缀
   * @default 'VITE_'
   */
  envPrefix?: string | string[]

  /**
   * 类型定义文件输出路径
   * @default 'src/import_meta.d.ts'
   */
  filePath?: string

  /**
   * 是否在类型中包含实际值
   * @default false
   * @example
   * // 当valueInType为false时
   * VITE_API_URL: string
   * // 当valueInType为true时
   * VITE_API_URL: 'https://api.example.com'
   */
  valueInType?: boolean
}

示例

基本配置

// vite.config.ts
import { defineConfig } from 'vite'
import envTyped from 'vite-plugin-env-typed'

export default defineConfig({
  plugins: [envTyped()]
})

自定义环境变量前缀

// vite.config.ts
export default defineConfig({
  plugins: [
    envTyped({
      envPrefix: ['VITE_', 'CUSTOM_']
    })
  ]
})

包含实际值

// vite.config.ts
export default defineConfig({
  plugins: [
    envTyped({
      valueInType: true
    })
  ]
})

📝 贡献指南

欢迎提交 issuespull requests 来帮助改进 vite-plugin-env-typed

📄 许可证

MIT

联系我们

About

A vite plugin to generate import_meta.d.ts file for env typed

Resources

License

Stars

Watchers

Forks

Contributors