In this blog post, I go to collect a set of tools used to help developers choose better dependencies and see the hidden cost of your choices.
Packagephobia reports you:
Bundlephobia is pretty similar to packagephobia but oriented from a frontend side perspective, reporting you the size based of the webpack bundle size.
pkfiles list all files which would be published in a package.
It’s great use before release a new version and know what will be inside the bundle.
$ pkgfiles PATH SIZE % .gitattributes 12 B 0% test/mocha.opts 80 B 1% .travis.yml 83 B 1% .npmignore 120 B 2% .editorconfig 365 B 5% .bumpedrc 644 B 10% index.js 779 B 12% LICENSE 1.11 kB 17% package.json 1.68 kB 25% README.md 1.78 kB 27% DIR SIZE % test/ 80 B 1% . 6.65 kB 100% PKGFILES SUMMARY Size on Disk with Dependencies ~104 MB Size with Dependencies ~58.8 MB Publishable Size ~6.65 kB Number of Directories 2 Number of Files 10
You can complement it perfectly with
files fields at your
depcheck is a tool for analyzing the dependencies in a project to see: how each dependency is used, which dependencies are useless, and which dependencies are missing from
$ depcheck Unused dependencies * micro-get Unused devDependencies * git-dirty
I love use this tool specially in projects with many contributors, where the codebase can change a lot every day and you install and remove dependencies without criteria.
size-limit to your continuous integration service (such as Travis CI) is the best way to don’t increment the size of the library unintentionally.
next-update aims for automatize your upgrade dependencies process.
It runs your project tests upgrading your sub-dependencies tree until found a combination that breaks your code. It will be determinate your ideal version so you can update your dependencies without break your code.
It’s very useful when you need to maintain an outdated project for a time ago