Remove node_modules from all folders

Remove all node_modules recursive from every folder

Velu S Gautam1 min readLearnings

If you want to remove all node_modules from all project files.

How much space node_modules are using in your disk in Mac

BASH
$ cd projects 
$ find . -name "node_modules" -type d -prune | xargs du -chs

/* Sample Output */
 28M	./image-resize/node_modules
 14M	./backend/node_modules
217M	./hectane-next/node_modules
259M	total

With the above code you can see how much node_modules are using your disk space.

NodeJs way

JAVASCRIPT
const fs = require('fs');
const removeNodeModules = (base) => {
  fs.readdirSync(base).forEach((path) => {
    if (fs.statSync(`${base}/${path}`).isDirectory()) {
      if (path !== 'node_modules') {
        removeNodeModules(`${base}/${path}`);
      } else {
        fs.rmdir(`${base}/${path}`, { recursive: true }, (err) => {
          if (err) {
            throw err;
          }
          console.log(`${base}/${path} is deleted!`);
        });
      }
    }
  });
};
removeNodeModules('./');

Save the above code as remove_node_modules.js and then run in the parent folder.

BASH
node remove_node_modules.js

It will remove all node_modules folders from all sub directories.

// Required node.js to be configured

Note: If you need some granular control then you can use the NodeJs. Here we can even ignore some folders by skipping that folder names in the if check.

Mac way

This code I have been using earlier in mac.

BASH
$ cd projects 
$ find . -name "node_modules" -type d -prune -exec rm -rf '{}' +

Windows way

BASH
cd projects
FOR /d /r . %d in (node_modules) DO @IF EXIST "%d" rm -rf "%d"

Comments