vite-plugin-info

raw JSON →
0.4.1 verified Mon Apr 27 auth: no javascript

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.

error Cannot find module '~build/time' or its corresponding type declarations.
cause TypeScript doesn't know about the virtual module; missing type declaration.
fix
Add declare module '~build/time' { const now: string; export default now; } in a .d.ts file.
error BuildInfo is not a function / TypeError: BuildInfo is not a constructor
cause Used named import instead of default import.
fix
Change import { BuildInfo } from 'vite-plugin-info' to import BuildInfo from 'vite-plugin-info'.
error Error: The plugin 'vite-plugin-info' doesn't seem to be a valid Vite plugin.
cause Plugin is improperly applied (e.g., array inside array, or not instantiated).
fix
Ensure plugins array contains the instantiated plugin: BuildInfo(), not BuildInfo.
gotcha Module paths must match exactly: '~build/time', not '@/build/time' or 'virtual:build/time'
fix Use the exact string '~build/time' etc. as the import specifier.
gotcha Meta options are serialized with JSON.stringify; functions or non-serializable values will break
fix Only pass plain objects/arrays/strings/numbers/booleans as meta values.
breaking v0.4.x is the last version supporting Vite 2.x; v1.x drops Vite 2.x support
fix Upgrade to Vite ^3.0.0 || ^4.0.0 if using v1.x plugin.
gotcha TypeScript users must declare module types for virtual modules in a .d.ts file
fix Add declare module '~build/meta' { ... } etc. in your env.d.ts.
npm install vite-plugin-info
yarn add vite-plugin-info
pnpm add vite-plugin-info

Shows setup in vite.config.ts and usage of the four virtual modules: ~build/time, ~build/info, ~build/meta, ~build/package.

// vite.config.ts
import { defineConfig } from 'vite'
import BuildInfo from 'vite-plugin-info'

export default defineConfig({
  plugins: [
    BuildInfo({
      meta: {
        author: 'Alice',
        version: process.env.APP_VERSION ?? 'dev',
      }
    })
  ]
})

// In your app code:
import now from '~build/time'
import { sha, CI } from '~build/info'
import { author, version } from '~build/meta'
import { name } from '~build/package'

console.log(`Build started: ${now}`)
console.log(`Git commit: ${sha}`)
console.log(`CI: ${CI}`)
console.log(`App meta: ${author} ${version}`)
console.log(`Package: ${name}`)