If you have worked with node for a while and created a few projects you might find soon enough that nodemodules can take quite some space. Its like a bottomless pit when it comes to nodemodules and there is duplication upon duplication of node modules because of the nature of how npm works.

Note: The method below only works on Linux and MacOS

Cleanup

So, at times you might need to free space from projects that you don't use much now and you forgot to delete the node_modules folder.

Command

find . | grep /node_modules$ | grep -v /node_modules/ | xargs rm -fR

What this will do, is execute a find command in the current directory (where . means current directory), grab all folders named node_modules and execute rm -fR to remove them.

So you could think that by navigating to your root directory and executing this script you can safely remove all folders named node_modules .

Second option

As pointed out by ConfusedChihuahua, a reddit user it might be safer to use a command without regular expressions which you can find below.

find -type d -and -name node_modules -and - exec rm -rf { } ;

Beware that if any installed applications use node_modules they will stop working so be careful in which directory you are running any of the two commands above.

My recommendation is only to use this script in a folder that contains your projects. This way you have control over what is deleted.

Making it a script

If you want to have it as a script somewhere

touch clean.sh

Open file using nano or your favorite editor and paste the content

#!/bin/bash find . | grep /node_modules$ | grep -v /node_modules/ | xargs rm -fR

Make file executable

chmod +x clean.sh

Run script

./clean.sh

Conclusion