toobig
v3.4.0
Published
Check file and directory sizes against a budget.
Downloads
15,002
Readme
toobig ⚖️
A simple utility to check file and directory sizes against a budget.

Table of contents
Install
To install:
npm install toobig --save-devOr if you prefer using Yarn:
yarn add toobig --devUsage
Configuration
By default, toobig will search up the directory tree for configuration in the following places:
- a
toobigproperty inpackage.json - a
.toobigrcfile in JSON or YAML format - a
.toobigrc.jsonfile - a
.toobigrc.yaml,.toobigrc.yml, or.toobigrc.jsfile - a
toobig.config.jsfile exporting a JS object
toobig continues to search up the directory tree, checking each of these places in each directory, until it finds some acceptable configuration (or hits the home directory).
Configuration looks like this:
{
"budgets": {
"dist/*.entry.js": "16KB",
"dist/*.lazy.js": "128KB"
}
}If you want to specify which reporters to use, it would look something like this:
{
"budgets": {
"dist/*.entry.js": "16KB",
"dist/*.lazy.js": "128KB"
},
"reporters": [
"line",
["table", { "template": "markdown" }],
"summary",
["json", { "output": "toobig-report.json" }],
["junit", { "output": "toobig-report.xml" }],
["tap", { "output": "toobig-report.txt" }]
]budgets
budgets is a map where the keys are glob expressions, and the values are their corresponding budget. If any file or directory that matches a glob expression is bigger than its specified budget, toobig will exit with a non-zero status.
reporters
reporters is an array of reporters that will process results.
Built-in reporters are:
linetablesummaryjsonjunittap
CLI
scan [options]
scan is the default command. It scans the current working directory to check for entries over budget, and reports them.
To get help:
toobig --helpTo run:
toobigTo specify the location of the config file, instead of relying on the search logic described above:
toobig --config path/to/.toobigrcTo specify the reporters to use:
toobig --reporters json > toobig-report.jsonTo compare against the results of a previous run:
toobig --baselines toobig-previous.json --reporters table summaryload [options]
load allows you to load results from a previous run, and report them.
To get help:
toobig load --helpTo run:
toobig load --results toobig-report.jsonTo specify the reporters to use:
toobig load --results toobig-report.json --reporters table summaryTo compare against the results of a previous run:
toobig load --results toobig-report.json --baselines toobig-previous.json --reporters table summaryProgrammatic
scanAndReport
import { scanAndReport } from "toobig";
const { results, anyOverBudget } = await scanAndReport({
budgets: {
"dist/*.entry.js": "16KB",
"dist/*.lazy.js": "128KB",
},
reporters: [["json", { output: "toobig-report.json" }]],
});loadAndReport
import { loadAndReport } from "toobig";
const { results, anyOverBudget } = await loadAndReport({
results: "toobig-report.json",
reporters: [
"default",
["junit", { output: "toobig-report.xml" }],
["tap", { output: "toobig-report.txt" }],
],
});Build
To build:
npm run buildTo continuously build on changes:
npm run watch:buildTest
To run linting and unit tests:
npm testTo run just unit tests:
npm run test:unitTo continuously run unit tests on changes:
npm run watch:unitMeta
- Code:
git clone git://github.com/unindented/toobig.git - Home: https://github.com/unindented/toobig
Contributors
- Daniel Perez Alvarez (https://github.com/unindented)
- Dreadwail (https://github.com/dreadwail)
License
This is free software, and may be redistributed under the terms specified in the LICENSE file.
