Wednesday, August 17, 2022
In a project that’s mature enough, there’s always going to be some inevitable dead code, dangling files, and unused dependencies. Depending on the size and phase of the project, it’s practically impossible to manually go over every file and clean things up. There must be some tools for this…
Recently had to cleanup a lot of dead code that got accumulated in a large codebase over a few quarters. Agreed that it’s pretty bad to let a lot of dangling files, unused dependences and unused imports accumulate in the first place, but sometimes it’s inevitable given some time constraints and tight resources. The bigger problem imho is not going back to clean up the mess because they cause problems in the long run.
Since I’ve had to do this a couple of times already I can tell that it’s not a pleasant experience as it involves a lot of grunt work and removing the wrong file/package can end up costing hours. I believe the reasons behind some reluctance on the developers’ part might be summarized as -
a) it’s a lot of grunt work
b) it’s error-prone as there’s not enough tooling for this and
c) it doesn’t move any needle (in the short run)
Wished some more focus were put into this. Would love to see this as a feature of all the existing linters someday but that seems to be far away. Here’s a few CLI tools that are quite helpful and I’ve used them with great success 👇
Using it is a breeze. According to the docs: “
unimported analyzes your code by following the require/import statements starting from your entry file.”
Given that the root of the project is defined properly, one can fire up the terminal and hit:
Link to docs here.
This is a tool to find out which dependencies are useless and which ones are missing from the package.json. Not sure when the later part might be useful because there’s gonna be errors when there unmet dependencies, but the former part is good ^^
Using this similar to the other one:
Link to docs here.
Hope this little write up helps. Will try to update this if/when I find something new. May the dead code be with you 😛
*a lil meme made by me for you.
No fluff. No spam. Unsubscribe any time.
Every Saturday I share some high-quality insights from across the web, directly to you. Here's what you can expect: