0.1.0-28332255.73ffe33 â€ĸ Published 6 months ago

unplugin-time-stat-nightly v0.1.0-28332255.73ffe33

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

unplugin-time-stat

npm version CI

Build time stat reporting for unplugin.

🙋 Motivations

  • Each bundler has a different way of getting stats build times
    • webapck / rspack: stat json generated with the --json or --analyzer option
    • vite / rollup: stat via 3rd party plugin

🌟 Features

build time output console

console

custom hook

You can hook for build output time.

example for vite plugin case:

import TimeStat from 'unplugin-time-stat/vite'

function metrics(buildTime, { start, end }) {
  // Something hooking (ex. send metrics service like datadog)
  // ...

  // if you will return a string, it's output to console
  return `Build time: ${raw.end.getTime() - raw.start.getTime()}ms`
}

export default {
  plugins: [
    TimeStat({
      hook: metrics
    })
  ]
}

đŸ’ŋ Install

# Using npm
npm install unplugin-time-stat

# Using yarn
yarn add unplugin-time-stat

# Using pnpm
pnpm add unplugin-time-stat

# Using bun
bun add unplugin-time-stat

🚀 Usages

// vite.config.ts
import TimeStat from 'unplugin-time-stat/vite'

export default defineConfig({
  plugins: [
    TimeStat({
      /* options */
    })
  ]
})

build example: playground/

// rollup.config.js
import TimeStat from 'unplugin-time-stat/rollup'

export default {
  plugins: [
    TimeStat({
      /* options */
    })
  ]
}

// webpack.config.js
module.exports = {
  /* ... */
  plugins: [
    require('unplugin-time-stat/webpack')({
      /* options */
    })
  ]
}

// nuxt.config.js
export default defineNuxtConfig({
  modules: [
    [
      'unplugin-time-stat/nuxt',
      {
        /* options */
      }
    ]
  ]
})

This module works for both Nuxt 2 and Nuxt Vite

// vue.config.js
module.exports = {
  configureWebpack: {
    plugins: [
      require('unplugin-time-stat/webpack')({
        /* options */
      })
    ]
  }
}

// esbuild.config.js
import { build } from 'esbuild'
import TimeStat from 'unplugin-time-stat/esbuild'

build({
  plugins: [TimeStat()]
})

// rspack.config.js
module.exports = {
  /* ... */
  plugins: [
    require('unplugin-time-stat/rspack')({
      /* options */
    })
  ]
}

🛠ī¸ Plugin options

See the here

🙌 Contributing guidelines

If you are interested in contributing to unplugin-time-stat, I highly recommend checking out the contributing guidelines here. You'll find all the relevant information such as how to make a PR, how to setup development) etc., there.

Šī¸ License

MIT