package-size

    2.3.0 • Public • Published

    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

    Install

    npm i package-size

    DownloadsWeekly Downloads

    68

    Version

    2.3.0

    License

    MIT

    Unpacked Size

    19.2 kB

    Total Files

    7

    Last publish

    Collaborators

    • egoist
    • rem