DEV Community

Cover image for Depp - Basic Usage and Features
Rahul Tarak
Rahul Tarak

Posted on • Originally published at cryogenicplanet.tech

Depp - Basic Usage and Features

Recently we ran into a couple of bugs on our main fairly large monorepo which were caused my the same package existing twice but having different versions. This made me search for some dependency checking tools, and while there are existing ones none of them really had good monorepo support.

So I decided to make one, this is a brief about how I made it and also how to use it.

If you want to just try the tool without hearing ramble about it, feel free to checkout the repo

GitHub logo CryogenicPlanet / depp

A fast unused and duplicate dependency checker

Basic Usage and Features

Install

npm install -g depp-installer
depp --help  # Will should all avaliable options
Enter fullscreen mode Exit fullscreen mode

Usage

Default Config

depp
Enter fullscreen mode Exit fullscreen mode

Will check only typescript (.ts, .tsx) files in your root folder and all its children. It will also read the packages from then root package.json but also any package.json inside child folder (It supports mono repositories by default)

It will show unused packages, unused @type packages and duplicate packages with different versions

It will also generate a temporary html report file and open it in your browser. This file will look something like the following

https://cryogenicplanet.github.io/depp/static/htmlReport.html

Some Major Flags

  • --js Will enable checking js files
  • --dev Will enable checking dev dependencies (this is not very accurate)
  • --report Will save the report to .depp/report.md
  • --externals Can use this to external certain packages, useful if the build fails by default
  • --ignore-namespace Can ignore namspaced internal packages using thing, good for ignore @monorepo packages
  • --show-versions Will explicitly print the versions of duplicate packages in console

This is not an exhaustive list of all flags, for that run depp --help

Example advance usage is

depp  -e mobx -e magic-sdk -e domain -e @daybrush/utils -e yjs -e constants -e ws -v -in @editor -in @server -j -e perf_hooks --report
Enter fullscreen mode Exit fullscreen mode

In the next part, I will dig a little deeper into how this tool was built and how it works under the hood

Discussion (0)