UNPKG

nuxt-build-info

Version:

Track deployments with build-time info: version, git details, env context and timestamps for Nuxt apps

38 lines (35 loc) 1.28 kB
import { readFileSync } from 'node:fs'; import { defineNuxtModule, createResolver, addImportsDir } from '@nuxt/kit'; import { getEnv } from '../dist/runtime/utils/env.js'; const module = defineNuxtModule({ meta: { name: "build-info", configKey: "buildInfo" }, defaults: { version: void 0 }, async setup(options, nuxt) { const { resolve } = createResolver(import.meta.url); const runtimeDir = resolve("./runtime"); const packageJsonPath = resolve(nuxt.options.rootDir, "package.json"); const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8")); const packageVersion = packageJson.version || "0.0.0"; const { env, commit, shortCommit, branch } = await getEnv(); const buildInfo = { version: options.version || packageVersion, time: +Date.now(), commit, shortCommit, branch, env }; nuxt.options.appConfig = nuxt.options.appConfig || {}; nuxt.options.appConfig.buildInfo = buildInfo; nuxt.options.appConfig.env = env; nuxt.options.nitro.virtual = nuxt.options.nitro.virtual || {}; nuxt.options.nitro.virtual["#build-info"] = `export const env = ${JSON.stringify(env)}`; addImportsDir(resolve(runtimeDir, "composables")); } }); export { module as default };