# package-build-stats
**Repository Path**: mirrors_Jam3/package-build-stats
## Basic Information
- **Project Name**: package-build-stats
- **Description**: This is the cloud function that powers the core of building, minifying and gzipping of packages in bundlephobia
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-11-18
- **Last Updated**: 2026-03-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
This is the function that powers the core of building, minifying and gzipping of packages in bundlephobia.
## Usage
```js
const { getPackageStats } = require('package-build-stats')
```
#### Building packages from npm
##### Building the latest stable version
```js
const results = await getPackageStats('moment')
```
##### Building a specific version / tag
```js
const results = await getPackageStats('moment@2.24.0')
```
##### Building local packages (beta)
```js
const results = await getPackageStats('~/dev/my-npm-package') // must have a package.json
```
#### Passing options to the build
```js
const results = await getBuiltPackageStats('moment', options)
```
##### Options
| Option | Values | Default | Description |
| ------------------ | --------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| client | `npm` or `yarn` | `npm` | Which client to use to install package for building |
| limitConcurrency | `true` or `false` | `false` | When using `yarn` as the client, use the network mutex to limit concurrency |
| networkConcurrency | `number` | `false` | When using `yarn` as client, limit simultaneous installs to this number. |
| customImports | `Array` | `null` | By default, the default export is used for calculating sizes. Setting this option allows calculation of package stats based on more granular top-level exports. |
| minifier | `terser` or `esbuild` | `terser` | ESbuild is faster, albeit with marginally larger file sizes |
| installTimeout | number (ms) | 30000 | Timeout for package install |
## Listening to events
`package-build-stats` emits various lifecycle events when building a package.
You can listen to these events by subscribing to the event emitter (based on [mitt](https://github.com/developit/mitt)).
```js
import { eventQueue } from 'package-build-stats'
// Listen to all events
eventQueue.on('*', callback)
// Listen to specific events
eventQueue.on('TASK_PACKAGE_BUILD', callback)
```
For a list of all events, see [this](src/utils/telemetry.utils.ts).
## Contributing
See [contributing guide.](CONTRIBUTING.md)