dnode: Search and Delete Node Modules Folders Recursively
August 17, 2021 (Modified on May 4, 2023) • Golang CLI Utility • 2 minutes to read • Edit
Source: github.com/akshaybabloo/dnode
Node’s package managers makes it easy to develop applications, but the bloat it brings with it is (that’s node_modules) painful. My 2013 Mac with 256 GB HDD cannot handle it. I currently have around eight projects that use yarn
package manager and the total size of all node_modules
comes to around ~2.2GB. And lets not even get to the cache folder (Tip: yarn cache clean
). All the hate for node_modules
is totally justified.
All I want to do is to delete all unused node_modules
folders (we all think that we will get back to it at some point but we never do), and there are different ways to do it:
- Go to each project and delete the
node_modules
folder - Use one of the following shell scripts:
- Windows:
FOR /d /r . %d in (node_modules) DO @IF EXIST "%d" rm -rf "%d"
- Linux:
find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;
- PowerShell:
Get-ChildItem -Path "." -Include "node_modules" -Recurse -Directory | Remove-Item -Recurse -Force
- Or use dnode:
dnode delete
Instillation
There are pre-built binaries for Windows, macOS and Linux, these can be found at the release page.
Or you could build one yourself:
<p>Note: The code depends on Go 1.17 or above</p>
git clone https://github.com/akshaybabloo/dnode.git
cd dnode
go build -o dnode
./dnode --help
Usage
There are two commands - list
and delete
.
List
dnode list
lists all the unused node_modules
folders in the current directory tree.
Example:
Delete
dnode delete
deletes all the unused node_modules
folders in the current directory tree.
Example:
Final Thoughts
Again, this CLI was developed out of frustration to get rid of unused node_modules
folders. I hope you find it useful.
Happy coding 🍾