As much as I love to sling code, I love that we live in a world where you can
stand on the shoulders of giants and easily leverage other people’s hard work
by way of Open Source libraries.
Simply referred to as “dependencies”, these little code gems can save a ton of
time. Unfortunately though, especially with a larger code base with multiple
contributors, these dependencies can stack up quick.
Not only do they stack up, eventually the day comes when a better library is
brought into the fold, and the original dependency or dependencies stop being
used entirely.
The typical scenario I’ve seen at different points in my career would be 2-3 of
the same exact type of library installed, but only one of them is actually still
in use.
For whatever reason, it never fails that it’s a CSV parsing library. Not sure
why we can’t seem to agree on one CSV parser to rule them all out in Node.js
land.
With these dependencies that aren’t being used still in the fold, build times
grow increasingly longer as we’re installing code unnecessarily over and over
and over.
Fortunately, like most problems you face in development, there’s another
somebody or somebodies that have already run into the issue and have put the
time and effort into concocting a solution.
For npm
dependencies, that solution is depcheck
, a handy little
library that will scan your code and identify any unused dependencies.
If you have a Node.js project handy, you can follow along at home.
To run depcheck
you can use npx
within your project:
npx depcheck
And that’s it! npx
will install depcheck
and run it for you.
If you’re lucky, the output of the command will be No depcheck issue
, but if
you have any unused dependencies, you’ll see output similar to this:
Unused dependencies
* some-unused-dependency
* some-other-unused-dependency
Unused devDependencies
* et-cetera-etc-cetera
As an added bonus, depcheck
will also identify any dependencies you are using
that aren’t explicitly listed in your package.json
file, which looks like
this:
Missing dependencies
* something-not-listed
Pretty handy and quick and easy to make the most of it. Bonus points awarded to
folks that take a minute to wire depcheck
up to automatically run these checks
on commit and/or push to make sure you’re always on top of your unused
dependencies!