UNPKG

nuxt-size

Version:

ultrafast get folder size after build

51 lines (48 loc) 1.33 kB
import { existsSync } from 'node:fs'; import { cyan, gray } from 'kolorist'; import { getFolderSizeBin } from 'go-get-folder-size/npm/bin.mjs'; import { logger as logger$1, defineNuxtModule } from '@nuxt/kit'; import { isCI } from 'std-env'; const logger = logger$1.withTag("nuxt-size"); const module = defineNuxtModule({ meta: { name: "nuxt-size", configKey: "size", compatibility: { nuxt: "^3.0.0" } }, defaults: { showOutput: true, showBuildDir: false }, setup(options, nuxt) { if (!isCI) { const { dev, rootDir, buildDir } = nuxt.options; if (dev) return; const { showBuildDir, showOutput } = options; if (showOutput) { useBuildClose(`${rootDir}/.output`, "\u03A3 Output size"); } if (showBuildDir) { useBuildClose(buildDir, "\u03A3 BuildDir size"); } } function useBuildClose(base, tip) { nuxt.hook("build:done", () => { nuxt.hook("close", async () => { if (!existsSync(base)) { logger.warn(`${base} does not exist`); return; } const size = await getFolderSizeBin(base, true); logger.log( `${cyan(tip)}: ${size}${gray(" - " + base)}` ); }); }); } } }); export { module as default };