# 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)