Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kazupon/unplugin-time-stat
Build time stat reporting for unplugin
https://github.com/kazupon/unplugin-time-stat
esbuild performance rollup rspack stats unplugin vite webpack
Last synced: 3 months ago
JSON representation
Build time stat reporting for unplugin
- Host: GitHub
- URL: https://github.com/kazupon/unplugin-time-stat
- Owner: kazupon
- License: mit
- Created: 2023-11-13T09:51:48.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-21T22:58:39.000Z (3 months ago)
- Last Synced: 2024-09-30T02:31:44.655Z (3 months ago)
- Topics: esbuild, performance, rollup, rspack, stats, unplugin, vite, webpack
- Language: TypeScript
- Homepage:
- Size: 119 KB
- Stars: 13
- Watchers: 2
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# unplugin-time-stat
[![npm version][npm-version-src]][npm-version-href]
[![CI][ci-src]][ci-href]Build time stat reporting for [unplugin](https://github.com/unjs/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](assets/console.png)
### custom hook
You can hook for build output time.
example for vite plugin case:
```ts
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
```sh
# 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
```ts
// vite.config.ts
import TimeStat from 'unplugin-time-stat/vite'export default defineConfig({
plugins: [
TimeStat({
/* options */
})
]
})
```build example: [`playground/`](./playground/)
Rollup
```ts
// rollup.config.js
import TimeStat from 'unplugin-time-stat/rollup'export default {
plugins: [
TimeStat({
/* options */
})
]
}
```
Webpack
```ts
// webpack.config.js
module.exports = {
/* ... */
plugins: [
require('unplugin-time-stat/webpack')({
/* options */
})
]
}
```
Nuxt
```ts
// nuxt.config.js
export default defineNuxtConfig({
modules: [
[
'unplugin-time-stat/nuxt',
{
/* options */
}
]
]
})
```> This module works for both Nuxt 2 and [Nuxt Vite](https://github.com/nuxt/vite)
Vue CLI
```ts
// vue.config.js
module.exports = {
configureWebpack: {
plugins: [
require('unplugin-time-stat/webpack')({
/* options */
})
]
}
}
```
esbuild
```ts
// esbuild.config.js
import { build } from 'esbuild'
import TimeStat from 'unplugin-time-stat/esbuild'build({
plugins: [TimeStat()]
})
```
Rspack
```ts
// rspack.config.js
module.exports = {
/* ... */
plugins: [
require('unplugin-time-stat/rspack')({
/* options */
})
]
}
```
## đ ī¸ Plugin options
See the [here](https://github.com/kazupon/unplugin-time-stat/blob/main/src/types.ts)
## đ Contributing guidelines
If you are interested in contributing to `unplugin-time-stat`, I highly recommend checking out [the contributing guidelines](/CONTRIBUTING.md) here. You'll find all the relevant information such as [how to make a PR](/CONTRIBUTING.md#pull-request-guidelines), [how to setup development](/CONTRIBUTING.md#development-setup)) etc., there.
## Šī¸ License
[MIT](https://opensource.org/licenses/MIT)
[npm-version-src]: https://img.shields.io/npm/v/unplugin-time-stat?style=flat
[npm-version-href]: https://npmjs.com/package/unplugin-time-stat
[npm-downloads-src]: https://img.shields.io/npm/dm/unplugin-time-stat?style=flat
[npm-downloads-href]: https://npmjs.com/package/unplugin-time-stat
[ci-src]: https://github.com/kazupon/unplugin-time-stat/actions/workflows/ci.yml/badge.svg
[ci-href]: https://github.com/kazupon/unplugin-time-stat/actions/workflows/ci.yml