{"id":22736,"library":"vite-plugin-meta-env","title":"vite-plugin-meta-env","description":"Vite plugin to expose dynamic or non-prefixed environment variables via import.meta.env. Current stable version 1.0.2 (Aug 2023). Allows defining variables not starting with VITE_ (the default envPrefix) or process.env. Configurable to attach variables to import.meta.env or process.env. Different from standard Vite env handling by enabling arbitrary variable names without prefix restrictions. Active maintenance with TypeScript types included. Minimal API with one function call.","status":"active","version":"1.0.2","language":"javascript","source_language":"en","source_url":"https://github.com/wei-design/vite-plugin-meta-env","tags":["javascript","vite-plugin-meta-env","dynamic env variables","import.meta.env","vite define","vite plugin","vite","vue3","typescript"],"install":[{"cmd":"npm install vite-plugin-meta-env","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-meta-env","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-meta-env","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Plugin uses ESM default export; named import and CommonJS require will fail","wrong":"const { VitePluginMetaEnv } = require('vite-plugin-meta-env')","symbol":"VitePluginMetaEnv","correct":"import VitePluginMetaEnv from 'vite-plugin-meta-env'"}],"quickstart":{"code":"// vite.config.ts\nimport { defineConfig } from 'vite';\nimport vue from '@vitejs/plugin-vue';\nimport VitePluginMetaEnv from 'vite-plugin-meta-env';\n\nexport default defineConfig({\n  plugins: [\n    vue(),\n    VitePluginMetaEnv({\n      APP_VERSION: '1.0.0',\n      APP_BUILD_TIME: new Date().toISOString()\n    }, 'import.meta.env')\n  ]\n});\n\n// In your code:\nconsole.log(import.meta.env.APP_VERSION); // '1.0.0'","lang":"typescript","description":"Shows how to define custom env variables without VITE_ prefix and access them via import.meta.env."},"warnings":[{"fix":"Rebuild the project after changing environment variable values. For dynamic runtime variables, use process.env with appropriate server-side handling.","message":"Variables defined with this plugin are statically embedded at build time. Changes to .env files or runtime environment after build will NOT be reflected.","severity":"gotcha","affected_versions":"all"},{"fix":"Add declarations in a .d.ts file per Vite docs: https://vitejs.dev/guide/env-and-mode.html#intellisense","message":"If using TypeScript, you must manually extend ImportMetaEnv interface to get type safety and IntelliSense for custom variables.","severity":"gotcha","affected_versions":"all"},{"fix":"Only use 'import.meta.env' or 'process.env' as the second argument. Check that variable is accessible after configuration.","message":"The second parameter (defineOn) is not validated; passing an invalid value will silently fail (variables not exposed).","severity":"gotcha","affected_versions":"all"},{"fix":"For SSR, use Vite's define option or platform-specific runtime config. The plugin is intended for client-side builds only.","message":"This plugin only works during the Vite build process. It does not handle SSR or server-side runtime variables.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Change to default import: import VitePluginMetaEnv from 'vite-plugin-meta-env'","cause":"Named import instead of default import (e.g., import { VitePluginMetaEnv } from 'vite-plugin-meta-env').","error":"TypeError: VitePluginMetaEnv is not a function"},{"fix":"Ensure plugin is added to Vite plugins array with correct arguments. Access via import.meta.env only after build.","cause":"Variable not exposed because plugin not configured, or second argument misconfigured, or accessing before build.","error":"Cannot read properties of undefined (reading 'APP_VERSION')"},{"fix":"Use default import syntax as shown in the docs.","cause":"Using named import when the package exports a default.","error":"Module '\"vite-plugin-meta-env\"' has no exported member 'VitePluginMetaEnv'. Did you mean to use 'import VitePluginMetaEnv from \"vite-plugin-meta-env\"' instead?"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}