/js-size

Get the size of some JS.

Primary LanguageJavaScriptMIT LicenseMIT

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