Get the size of some JS.
JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
test
.editorconfig
.gitignore
.travis.yml
LICENSE
README.md
package-lock.json
package.json

README.md

js-size

Get the size of some JS.

NPM Build Status JavaScript Style Guide Greenkeeper badge

All sizes are shown gzipped using the gzip-size module. The gzipped size better represents what gets sent over-the-wire in a production application. It also provides a better baselines when comparing the original to the minified size.

Install

npm install --save js-size

Usage

const jssize = require('js-size')
require('./something-that-bundles-your-js').then((jsStr) => {
  console.log(jssize(js))
  // {
  //   original: '170.96 kB',
  //   minified: '77.19 kB',
  //   difference: '93.77 kB',
  //   percent: '45.15%'
  // }

  console.log(jssize.table(js))
  // ┌─────────────────┬───────────┐
  // │ Original (gzip) │ 170.96 kB │
  // ├─────────────────┼───────────┤
  // │ Minified (gzip) │ 77.19 kB  │
  // ├─────────────────┼───────────┤
  // │ Difference      │ 93.77 kB  │
  // ├─────────────────┼───────────┤
  // │ Percent         │ 45.15%    │
  // └─────────────────┴───────────┘
})

API

jssize(input, options)

input

Required
Type: string, buffer

Returns the original and minified sizes and the difference and percent minified.

jssize.table(input, options)

input

Required
Type: string, buffer

Returns all the same table but formatted as a cli table.

options (default, {})

es (default, false)

Whether to use uglify-es or not.

Uglify options

All other keys are passed directly to uglify. See the API Reference for available options.

CLI

$ npm install --global js-size
$ js-size

  Get the size of some JS.

  Usage
    js-size <file>
    cat <file.js> | js-size

  Options
    --config, -c Path to json config file to use for uglify options
    --es, -e Use uglify-es

  Example
    js-size index.js --es
    ┌─────────────────┬────────┐
    │ Original (gzip) │ 588 kB │
    ├─────────────────┼────────┤
    │ Minified (gzip) │ 446 kB │
    ├─────────────────┼────────┤
    │ Difference      │ 142 kB │
    ├─────────────────┼────────┤
    │ Percent         │ 75.85% │
    └─────────────────┴────────┘

License

MIT © Luke Karrys