package-size

How does this work?
Install the packages with yarn or npm in a temp directory
Bundle the packages with webpack and get the bundle size
Show you the bundle size and cache it by package version
Install
- ``` shell
- yarn global add package-size
- ```
Usage
The package is bundled with Webpack.
- ``` shell
- # 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
- ``` js
- 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 :
- ``` shell
- 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
Fork it!
Create your feature branch: git checkout -b my-new-feature
Commit your changes: git commit -am 'Add some feature'
Push to the branch: git push origin my-new-feature
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