📦👀 Keep an eye on your packages' footprint
This repository has been archived on 2024-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2021-02-18 23:12:16 -05:00
.github/workflows build: switch to berry (#162) 2021-02-17 21:34:44 -05:00
.yarn/releases build: switch to berry (#162) 2021-02-17 21:34:44 -05:00
src refactor: remove mocks from tests 2021-02-18 23:12:16 -05:00
.all-contributorsrc docs: add msrose as a contributor (#13) 2020-03-08 13:19:42 -04:00
.eslintrc.js refactor: move to Typescript (#146) 2020-12-12 19:18:25 -05:00
.gitignore chore: unbork yarn 2021-02-18 22:00:14 -05:00
.nvmrc Add RC files (#5) 2020-03-06 16:16:07 -05:00
.packwatch.json Initial upload (#1) 2020-02-29 18:40:39 -05:00
.prettierrc refactor: move to Typescript (#146) 2020-12-12 19:18:25 -05:00
.releaserc ci: release control 2020-02-29 19:42:10 -05:00
.yarnrc.yml chore: unbork yarn 2021-02-18 22:00:14 -05:00
.yvmrc Add RC files (#5) 2020-03-06 16:16:07 -05:00
babel.config.json refactor: move to Typescript (#146) 2020-12-12 19:18:25 -05:00
BEST_PRACTICES.md Better documentation (#19) 2020-05-01 22:08:06 -04:00
jest.config.js Initial upload (#1) 2020-02-29 18:40:39 -05:00
LICENSE Initial commit 2020-02-29 17:52:42 -05:00
package.json refactor: remove mocks from tests 2021-02-18 23:12:16 -05:00
README.md Better documentation (#19) 2020-05-01 22:08:06 -04:00
yarn.lock refactor: remove mocks from tests 2021-02-18 23:12:16 -05:00

📦 PackWatch 👀

All Contributors

It ain't easy being tiny.

codecov packwatch CI semantic-release

Overview

packwatch is inspired by what projects like bundlewatch do for webpack bundle size monitoring and applies the same general idea to monitor your node packages' tarball sizes across time and help avoid incremental bloat. Keeping your applications as trim as possible is important to provide better experiences to users and to avoid wasting system resources, and being cognizant of the footprint of the packages you put out there is paramount.

Using packwatch, you can track your package's expected size, packed and unpacked, via a manifest comitted along with your code. You can use it to define an upper limit for your package's size and validate that increases in package footprint are warranted and not accidental.

Installation

Installing packwatch is easy as pie:

yarn add packwatch -D

or

npm install packwatch --save-dev

While you can install packwatch as a global package, it's better to include it as a devDependency in your project.

Usage

packwatch tracks your packages' size via its .packwatch.json manifest. To get started, call packwatch at the root of your project: a fresh manifest will be generated for you using your current package's size as the initial upper limit for package size.

Once a manifest file exists, calling packwatch again will compare its data to the current state of your package. Every time packwatch compares your code to the manifest, it will update the last reported package size statistics it contains, but not the limit you have set.

At any time, you can update the limit specified in your manifest by using the --update-manifest flag:

packwatch --update-manifest

Just commit your .packwatch.json manifest and you're good to go!

Check out Packwatch's best practices tips and tricks for some advice on how to make the most of it!

Contributors

Thanks goes to these wonderful people (emoji key):


Marc Cataford

🤔 💻 🚇 ⚠️ 📖

Michael Rose

🚇 📖 💻

This project follows the all-contributors specification. Contributions of any kind welcome!