Socket
Socket
Sign inDemoInstall

package-size

Package Overview
Dependencies
451
Maintainers
2
Versions
44
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    package-size

Get real size of an npm package after bundled.


Version published
Weekly downloads
41
decreased by-53.93%
Maintainers
2
Install size
26.5 MB
Created
Weekly downloads
 

Readme

Source

package-size

NPM version NPM downloads Build Status donate

preview

How does this work?

  1. Install the packages with yarn or npm in a temp directory
  2. Bundle the packages with webpack and get the bundle size
  3. Show you the bundle size and cache it by package version

Install

yarn global add package-size

Usage

The package is bundled with Webpack.

# get the size of vue bundle
package-size vue

# get the size of react+react-dom bundle
package-size react,react-dom

# get the size of vue react+react-dom preact bundles
package-size vue react,react-dom preact

# get the size of react+react-dom without using the cache
package-size react,react-dom --no-cache

# get the size of file in current working directory
package-size ./dist/index.js
# or a package in current working directory, explictly using `--cwd` flag
package-size vue --cwd

# or event multiple versions for the same package!
package-size react@0.10 react@0.14 react@15

# save results to file system in JSON format
# defaults to ./package-size-output.json
package-size cherow --output
# or custom path
package-size cherow --output stats.json

# analyze bundle with webpack-bundle-analyzer
package-size cherow --analyze
# analyze bundle with webpack-bundle-analyzer on a different port
package-size cherow --analyze --port 9000

API

const getSizes = require('package-size')

getSizes('react,react-dom', options)
  .then(data => {
    console.log(data)
    //=>
    {
      name: 'react,react-dom',
      size: 12023, // in bytes
      minified: 2342,
      gzipped: 534,
      versionedName: 'react@16.0.0,react-dom@16.0.0'
    }
  })

options

sort

Type: boolean
Default: false

Sort packages in size (from small to large).

cwd

Type: boolean
Default: false

Resolve modules in current working directory instead of a cache folder. Relative path will set cwd to true by default.

externals

Type: string or Array<string|RegExp>
Default: undefined

The package to exclude from bundled file, for example, to get the bundle size of styled-jsx/style we need to exclude react:

package-size styled-jsx/style --externals react

Note that if some item in externals is provided as string, it will be wrapped in a regular expression. For example: react is treated as /^react$/

cache

Type: boolean
Default: true

If cache is set to false, then package-size will not use cached build sizes. To use this from the CLI, pass --no-cache as an argument.

target

Type: string
Default: browser Values: browser node

Build target. In node target, all node_modules will be excluded and output format is set to CommonJS.

registry

Type: string
Default: undefined

npm registry to install the package from. By default it uses the default npm registry.

resolve

Type: string string[]
Default: undefined

Extra folders to resolve local node_modules from.

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

package-size © EGOIST, Released under the MIT License.
Authored and maintained by EGOIST with help from contributors (list).

egoist.moe · GitHub @egoist · Twitter @_egoistlily

Keywords

FAQs

Last updated on 23 Mar 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc