Home

Awesome

<p align="center"> <img src="./meta/check.png" width="700" alt="codechecks.io"> <h3 align="center">Build Size Watcher</h3> <p align="center">Keep your build size in check and detect when it gets too big</p> <p align="center"> <a href="https://circleci.com/gh/codechecks/build-size-watcher"><img alt="Build Status" src="https://circleci.com/gh/codechecks/build-size-watcher/tree/master.svg?style=svg"></a> <a href="/package.json"><img alt="Software License" src="https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square"></a> </p> </p>

Install

npm add --save-dev @codechecks/build-size-watcher

or

yarn add --dev @codechecks/build-size-watcher

Usage

Add to your codechecks.yml file:

checks:
  - name: build-size-watcher
    options:
      files:
        - path: "./build/static/js/*.js"
          maxSize: 1MB
        - path: "./build/static/css/*.css"
        - path: "./build/static/images/*.jpg"
  # ...

With each pull request you will get a summary like Change +3 KB(+1%) Total 300KB and detailed size breakdown for each path in check's details.

API

buildSizeWatcher(options: BuildSizeWatcherOptions): Promise<void>

BuildSizeWatcherOptions

interface BuildSizeWatcherOptions {
  gzip?: boolean; // defaults to true
  files: {
    path: string; // supports globs
    maxSize?: number | string;
  }[];
  name?: string; // defaults to "Build Size"
}
gzip

optional boolean<br>
Default: true<br>
Specify if files should be gzipped before size calculation

files
interface FileDescription {
  path: string; // supports glob
  maxSize?: number | string;
}

List of files to track.

files.path

string<br>
Path specifying files to bundle together while calculating size. Supports globs. It's great when you have to deal with checksums in file names: ex. "./build/static/js/*.js"

files.maxSize

optional number|string<br>
Provide the maximum size of all files matched by files.path. It can be a number in bytes or a string like "1KB" or "1MB". When max size is reached the whole check will report failure.

name

optional string<br>
Default: Build Size<br>
Specify the name for check. Might be useful when you track multiple builds for example in monorepo.

Contributing

All contributions are welcomed. Read more in CONTRIBUTING.md

Licence

MIT @ codechecks.io