{"id":22708,"library":"vite-plugin-info","title":"vite-plugin-info","description":"Exports build metadata as Vite virtual modules, including build timestamp, git commit info, CI environment, and custom metadata. Current stable version is 0.4.1. The plugin provides three virtual modules: ~build/time (build start timestamp), ~build/info (git repository info via git-repo-info and CI detection via ci-info), and ~build/meta (user-defined metadata from vite.config options). It supports Vite 2.9+, 3.x, and 4.x, and ships TypeScript declarations. Compared to alternative approaches like manual file generation, it integrates directly into Vite's build pipeline and updates automatically on each build.","status":"active","version":"0.4.1","language":"javascript","source_language":"en","source_url":"https://github.com/yjl9903/vite-plugin-info","tags":["javascript","vite","vite-plugin","git","CI","typescript"],"install":[{"cmd":"npm install vite-plugin-info","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-info","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-info","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required peer dependency for plugin functionality","package":"vite","optional":true}],"imports":[{"note":"Default export; named import will result in undefined.","wrong":"import { BuildInfo } from 'vite-plugin-info'","symbol":"BuildInfo","correct":"import BuildInfo from 'vite-plugin-info'"},{"note":"~build/time module exports a single default value (Date string), not a named export.","wrong":"import { now } from '~build/time'","symbol":"now (from ~build/time)","correct":"import now from '~build/time'"},{"note":"~build/info exports named members (sha, CI, github, etc.), not a default export.","wrong":"import sha from '~build/info'","symbol":"sha (from ~build/info)","correct":"import { sha } from '~build/info'"},{"note":"~build/meta exports named members matching the keys in the meta option object.","wrong":"import message from '~build/meta'","symbol":"message (from ~build/meta)","correct":"import { message } from '~build/meta'"},{"note":"~build/package exports named members (name, version, etc.) from package.json.","wrong":"import name from '~build/package'","symbol":"name (from ~build/package)","correct":"import { name } from '~build/package'"}],"quickstart":{"code":"// vite.config.ts\nimport { defineConfig } from 'vite'\nimport BuildInfo from 'vite-plugin-info'\n\nexport default defineConfig({\n  plugins: [\n    BuildInfo({\n      meta: {\n        author: 'Alice',\n        version: process.env.APP_VERSION ?? 'dev',\n      }\n    })\n  ]\n})\n\n// In your app code:\nimport now from '~build/time'\nimport { sha, CI } from '~build/info'\nimport { author, version } from '~build/meta'\nimport { name } from '~build/package'\n\nconsole.log(`Build started: ${now}`)\nconsole.log(`Git commit: ${sha}`)\nconsole.log(`CI: ${CI}`)\nconsole.log(`App meta: ${author} ${version}`)\nconsole.log(`Package: ${name}`)","lang":"typescript","description":"Shows setup in vite.config.ts and usage of the four virtual modules: ~build/time, ~build/info, ~build/meta, ~build/package."},"warnings":[{"fix":"Use the exact string '~build/time' etc. as the import specifier.","message":"Module paths must match exactly: '~build/time', not '@/build/time' or 'virtual:build/time'","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Only pass plain objects/arrays/strings/numbers/booleans as meta values.","message":"Meta options are serialized with JSON.stringify; functions or non-serializable values will break","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Upgrade to Vite ^3.0.0 || ^4.0.0 if using v1.x plugin.","message":"v0.4.x is the last version supporting Vite 2.x; v1.x drops Vite 2.x support","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Add declare module '~build/meta' { ... } etc. in your env.d.ts.","message":"TypeScript users must declare module types for virtual modules in a .d.ts file","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Add declare module '~build/time' { const now: string; export default now; } in a .d.ts file.","cause":"TypeScript doesn't know about the virtual module; missing type declaration.","error":"Cannot find module '~build/time' or its corresponding type declarations."},{"fix":"Change import { BuildInfo } from 'vite-plugin-info' to import BuildInfo from 'vite-plugin-info'.","cause":"Used named import instead of default import.","error":"BuildInfo is not a function / TypeError: BuildInfo is not a constructor"},{"fix":"Ensure plugins array contains the instantiated plugin: BuildInfo(), not BuildInfo.","cause":"Plugin is improperly applied (e.g., array inside array, or not instantiated).","error":"Error: The plugin 'vite-plugin-info' doesn't seem to be a valid Vite plugin."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}