All Projects → d4rkr00t → Whybundled

d4rkr00t / Whybundled

Licence: mit
Answers the question – Why the hell is this module in a bundle?

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Whybundled

Webpack
简单易懂的webpack入门教程
Stars: ✭ 175 (-63.31%)
Mutual labels:  webpack, bundle
Webpack Format Messages
Beautiful formatting for Webpack messages; ported from Create React App!
Stars: ✭ 103 (-78.41%)
Mutual labels:  webpack, stats
Poi
⚡A zero-config bundler for JavaScript applications.
Stars: ✭ 5,291 (+1009.22%)
Mutual labels:  webpack, bundle
Webpack Bundle
Bundle to Integrate Webpack into Symfony
Stars: ✭ 124 (-74%)
Mutual labels:  webpack, bundle
Speed Measure Webpack Plugin
⏱ See how fast (or not) your plugins and loaders are, so you can optimise your builds
Stars: ✭ 1,980 (+315.09%)
Mutual labels:  webpack, stats
Webpack Bundle Analyzer
Webpack plugin and CLI utility that represents bundle content as convenient interactive zoomable treemap
Stars: ✭ 11,472 (+2305.03%)
Mutual labels:  webpack, bundle
Ostap
CLI tool that fast checks if your bundle contains multiple versions of the same package, only by looking in package.json.
Stars: ✭ 117 (-75.47%)
Mutual labels:  webpack, bundle
Webpack.js.org
Repository for webpack documentation and more!
Stars: ✭ 2,049 (+329.56%)
Mutual labels:  webpack, bundle
Package Size
Get the bundle size of an npm package.
Stars: ✭ 257 (-46.12%)
Mutual labels:  webpack, bundle
React Redux Links
Curated tutorial and resource links I've collected on React, Redux, ES6, and more
Stars: ✭ 21,205 (+4345.49%)
Mutual labels:  webpack
Ts Monorepo
Template for setting up a TypeScript monorepo
Stars: ✭ 459 (-3.77%)
Mutual labels:  webpack
Easy Deploy Bundle
The easiest way to deploy your Symfony applications
Stars: ✭ 446 (-6.5%)
Mutual labels:  bundle
React Starter Kit
React Starter Kit — front-end starter kit using React, Relay, GraphQL, and JAM stack architecture
Stars: ✭ 21,060 (+4315.09%)
Mutual labels:  webpack
Blog React
react + Ant Design + 支持 markdown 的博客前台展示
Stars: ✭ 463 (-2.94%)
Mutual labels:  webpack
Happypack
Happiness in the form of faster webpack build times.
Stars: ✭ 4,232 (+787.21%)
Mutual labels:  webpack
Awesome Webpack
A curated list of awesome Webpack resources, libraries and tools
Stars: ✭ 4,470 (+837.11%)
Mutual labels:  webpack
Opencollective Frontend
Open Collective Frontend. A React app powered by Next.js.
Stars: ✭ 446 (-6.5%)
Mutual labels:  webpack
Webpack Pwa Manifest
Progressive Web App Manifest Generator for Webpack, with auto icon resizing and fingerprinting support.
Stars: ✭ 447 (-6.29%)
Mutual labels:  webpack
Mailtolink
A quick and easy way to generate markup for mailto links without having to worry about the annoying formatting.
Stars: ✭ 478 (+0.21%)
Mutual labels:  webpack
Git Quick Stats
▁▅▆▃▅ Git quick statistics is a simple and efficient way to access various statistics in git repository.
Stars: ✭ 5,139 (+977.36%)
Mutual labels:  stats


whybundled




NPM Version License Github Issues Coverage Status Commitizen Friendly



Ever wondered why any particular module ended up in a bundle? WhyBundled is here to answer exactly this question.

It's meant to be used alongside stats report from webpack.

Quick Start

npm i -g whybundled

whybundled stats.json ← stats file generated by wepback

whybundled default report

Usage

Usage
  $ whybundled stats.json "[pattern]"                   [default command]
  $ whybundled stats.json --ignore babel-runtime,tslib  [default command]
  $ whybundled stats.json --by styled-components        [by command]

Default options:
  [pattern]          Optional pattern used to filter output to only matched modules
                     Note: you might need to wrap the pattern in quotes to use wildcards, e.g. "*.jsx"
  --ignore           Comma separated list of glob pattern to exclude modules from final output
  --modulesOnly      Only include modules
  --filesOnly        Only include files
  --directOnly       Only include direct dependencies
  --transitiveOnly   Only include transitive dependencies
  --duplicatesOnly   Only include modules that have duplicates in a resulting bundle
  --limit            Limits output of reasons and files [default: 20]

By options [--by]:
  --ignore           Comma separated list of glob pattern to exclude modules from final output
  --limit            Limits output of reasons and files [default: 20]
  --only             Limits output to only include modules that were included by specified module exclusively

Other options:
  -v, --version      Shows version.
  --help             Shows help.

Examples
  $ whybundled stats.json --modulesOnly

Features

Stats Analyses

  • Outputs list of all modules/files included in the bundle in from most imported to least imported order.
  • Builds a chain of dependencies for transitive dependencies.
  • Shows all files that were included for particular module.
  • Shows all reasons why particular module was included.
MODULE  isobject
├─ imported: 1 time     ← number of times module imported
├─ type: [transitive]   ← type of a dependency can be either direct or transitive
│  └─ isobject -> is-plain-object -> styled-components    ← for transitive dependencies whybundled outputs a chain of dependencies up to the closest direct
│
├─ locations:  ← where module is located in a project
│  └─ ../node_modules/isobject/
│
├─ files:      ← list of files that were included for this module
│  └─ ../node_modules/isobject/index.js
│
└─ reasons:    ← list of reasons why module was included in a bundle
   └─ is-plain-object
      └─ ../node_modules/is-plain-object/index.js  10:15-34  [cjs require]

Duplicates Badge

If module has been bundled several times from different locations whybundled adds [multiple] badge next to the locations field:

whybundled duplicates

Brought by

Using --by flag whybundled shows all modules that were brought into the bundle by a particular module:

whybundled stats.json --by styled-components

whybundled brought by

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].