项目作者: AdrieanKhisbe

项目描述 :
📦 Cli for the node BundlePhobia Service 😱
高级语言: JavaScript
项目地址: git://github.com/AdrieanKhisbe/bundle-phobia-cli.git
创建时间: 2017-09-12T05:02:22Z
项目社区:https://github.com/AdrieanKhisbe/bundle-phobia-cli

开源协议:MIT License

下载


bundle-phobia-cli

npm
Build Status
codecov
License: MIT

Cli for the node BundlePhobia Service

About

BundlePhobia is a tool to help you find the cost of adding a npm package to your bundle.
It enables you to query package sizes.

Installation

Just use npm install -g bundle-phobia-cli and you’re good to go!

Usage

Once installed you will have access to different executables:

  • bundle-phobia: to query package size.
    Just invoke it with a list of package names and some options.
  • bundle-phobia-install: to conditionally install package if weight constraint are respected. This is a wrapper on npm install

Note that you can specify a version along with the package range such as an
instance exact version lodash@4.12.0 or range version ora@^3.0.0.

Examples

  1. # Query package size of lodash and react
  2. $ bundle-phobia lodash react
  3. lodash (4.17.11) has 0 dependencies for a weight of 68.51KB (24.05KB gzipped)
  4. react (16.6.0) has 4 dependencies for a weight of 5.86KB (2.48KB gzipped)
  5. # Perform conditional install of lodash
  6. $ bundle-phobia-install lodash
  7. Applying a size limit of 100KB
  8. Proceed to installation of package lodash
  9. + lodash@4.17.11
  10. added 1 package from 2 contributors and audited 1 package in 1.377s
  11. found 0 vulnerabilities

Detailed Usage

bundle-phobia

Some option are available to control what stats are outputed by bundle-phobia.

By default an humain friendly output is provided, otherwise you can have a json output
with the --json flag. In case you need just the size (or gzip) in a script, you can
use the --[gzip]-size flag.

To control the packages to be queried, you can either provide them as an argument list,
or you can refer a package.json file with the --package option. This would read the
packages as dependencies.
You can also provide a folder to -p (including .). This would look for package.json in that folder.

Options Summary
  1. Usage: bundle-phobia <package-name> [other-package-names...]
  2. Options:
  3. --version Show version number [boolean]
  4. --package, -p Provide a package.json to read dependencies [string]
  5. --range, -r Get a range of version (0 for all, 8 by default) [number]
  6. --json, -j Output json rather than a formater string [boolean]
  7. --size, -s Output just the module size [boolean]
  8. --gzip-size, -g Output just the module gzip size [boolean]
  9. --dependencies, -d Output just the number of dependencies [boolean]
  10. --self Output bundle-phobia stats [boolean]
  11. -h, --help Show help [boolean]

bundle-phobia-install

bundle-phobia-install offer three kind of flags:

  • flags to specify the size constraints
  • flags to specify behavior when constraints are not respected
  • npm install flags to control it’s behavior

To control the size constraint of a single package: --max-size and --max-gzip-size aliases to -m and -M.
To control the overall size of dependencies: --max-overall-size and --max-overall-gzip-size aliases to -o and -O.
They expect a size argument that can be either a number or a number followed by a kB, mB unit.

By default if constraint is not respected, install with failed.
If you want to perform anyway with just a warning use the --warn/-w flag.
If you want to be asked what to do, use the --interactive/-i.

All other options will be conveyed to npm.

Limits can also be configured in the package.json by adding a bundle-phobia section with a max-[gzip-]size key.

  1. {
  2. "name": "bundle-phobia-install-test",
  3. "dependencies": {},
  4. "bundle-phobia": {
  5. "max-size": "12kB",
  6. "max-overall-size": "1MB"
  7. }
  8. }
Options Summary
  1. Usage: bundle-phobia-install <package-name> [other-package-names...]
  2. Options:
  3. --version Show version number [boolean]
  4. --warn, -w Install despite of negative check but warn about
  5. predicate violation [boolean]
  6. --interactive, -i Ask for override in case of predicate violation [boolean]
  7. --max-size, -m Size threeshold of individual library to install [string]
  8. --max-gzip-size, -M Gzip Size threeshold of individual library to install
  9. [string]
  10. -h, --help Show help [boolean]