unplugin-build-meta

March 27, 2026 ยท View on GitHub

npm version npm downloads

Import build metadata into your JavaScript/TypeScript projects for Vite, Webpack, Rollup, esbuild and more. Powered by unplugin.


Open the Vite example in StackBlitz

Install

npm install -D unplugin-build-meta

Usage

Tip

You can view all examples here.

Vite
// vite.config.ts
import buildMeta from "unplugin-build-meta/vite";

export default defineConfig({
  plugins: [
    buildMeta({ /* options */ }),
  ],
});


Rollup
// rollup.config.js
import buildMeta from "unplugin-build-meta/rollup";

export default {
  plugins: [
    buildMeta({ /* options */ }),
  ],
};


Webpack
// webpack.config.js
module.exports = {
  /* ... */
  plugins: [
    require("unplugin-build-meta/webpack").default({ /* options */ }),
  ],
};


Nuxt
// nuxt.config.js
export default defineNuxtConfig({
  modules: [
    ["unplugin-build-meta/nuxt", { /* options */ }]
  ],
});


Astro
// astro.config.mjs
import { defineConfig } from "astro/config";
import buildMeta from "unplugin-build-meta/astro";

// https://astro.build/config
export default defineConfig({
  integrations: [
    buildMeta({
      /* options */
    })
  ]
});


esbuild
// esbuild.config.js
import { build } from "esbuild";
import buildMeta from "unplugin-build-meta/esbuild";

build({
  /* ... */
  plugins: [
    buildMeta({
      /* options */
    }),
  ],
});


Rspack
// rspack.config.mjs
import rspack from "@rspack/core";
import buildMeta from "unplugin-build-meta/rspack";

/** @type {import('@rspack/core').Configuration} */
export default {
  plugins: [
    new rspack.HtmlRspackPlugin({
      template: "./index.html"
    }),
    buildMeta()
  ],
};


Rolldown (Experimental)
// rolldown.config.js
import { defineConfig } from "rolldown";
import buildMeta from "unplugin-build-meta/rolldown";

export default defineConfig({
  input: "./index.js",
  plugins: [
    buildMeta({
      /* options */
    }),
  ],
});


Configuration

buildMeta({
  // Whether to enable the git module (enabled by default)
  git: true,

  // Additional custom modules to include
  extraModules: [
    // Your custom modules here
  ]
});

By default, the git module is enabled. You can:

  • Disable the git module by setting git: false
  • Add custom modules using the extraModules array
  • Create custom modules using defineBuildMetaModule

Modules

Git Module

The git module provides access to repository metadata from your code.

Import it in your code:

// Import all git metadata
import * as git from "virtual:build-meta/git";

// Or import specific values
import { branch, sha, shortSha } from "virtual:build-meta/git";

Available properties (all properties are nullable):

PropertyTypeDescription
branchstring | nullCurrent git branch name
shastring | nullFull git commit hash
shortShastring | nullFirst 10 characters of the commit hash
latestCommitMessagestring | nullLatest commit message
commitAuthorNamestring | nullCommit author name
commitAuthorEmailstring | nullCommit author email
commitAuthorDatestring | nullCommit author date
commitCommitterNamestring | nullCommitter name
commitCommitterEmailstring | nullCommitter email
commitCommitterDatestring | nullCommitter date
tagstring | nullCurrent tag (if any)
tagsstring[] | nullAll tags pointing at current commit
lastTagstring | nullLatest tag in the repository
repositoryUrlstring | nullRepository URL (for GitHub repositories)

Runtime Module

The runtime module provides access to Node.js runtime information from your code.

Import it in your code:

// Import all runtime information
import * as runtime from "virtual:build-meta/runtime";

// Or import specific values
import { arch, platform, versions } from "virtual:build-meta/runtime";

Available properties:

PropertyTypeDescription
platformNodeJS.PlatformThe operating system platform (e.g., 'linux', 'darwin', 'win32')
archNodeJS.ArchitectureThe CPU architecture (e.g., 'x64', 'arm64')
versionsNodeJS.ProcessVersionsVersion strings of Node.js and its dependencies

TypeScript

To get proper type support, make sure to include the type declarations:

{
  "compilerOptions": {
    "types": [
      "unplugin-build-meta/types"
    ]
  }
}

๐Ÿ“„ License

Published under MIT License.