Skip to content

πŸ—‘οΈ Easily remove the node_modules folder of non-active projects

License

Notifications You must be signed in to change notification settings

bntzio/wipe-modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

37 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

wipe-modules Build Status

A little agent that removes the node_modules folder of non-active projects πŸ—‘οΈ

Why

If you're a Javascript developer, you know the node_modules directory holds thousands or even millions of files, resulting in taking a lot of space in your hard disk.

Enter wipe-modules, a little agent that wipes (eats, literally) that big node_modules directory of non-active projects.

Why in Earth would you want to have those monster-sized node_modules folders on inactive projects? You got your package.json to recreate it whenever you want, right?

Watch wipe-modules in action! πŸ“Ί

Inspiration

I got the idea when I saw this Wes Bos tweet.

6 hours into a time machine restore - node_modules with millions of files is killing me pic.twitter.com/2KirOXF2v2

-- Wes Bos (@wesbos) May 1, 2017

Problem solved now! πŸŽ‰πŸŽŠ

Install

Can be installed with npm, bpkg or curl.

npm

$ npm install --global wipe-modules

That's it! πŸ˜„

bpkg

$ bpkg install -g bntzio/wipe-modules

Done! πŸ˜ƒ

curl

$ curl -L https://raw.githubusercontent.com/bntzio/wipe-modules/master/wipe-modules.sh -o ~/bin/wipe-modules && chmod +x ~/bin/wipe-modules

All set! πŸ™‚

If you're using zsh or a different shell, make sure to have ~/bin in your $PATH.

Usage

$ wipe-modules --help

  Usage: wipe-modules [path] [days] [options]

  Path:
    The full path of your code directory

  Days:
    The days you want to set to mark projects as inactive

  Options:
    -D, --dry      Only show node_modules to be removed

  Example: wipe-modules ~/code 30

  That will remove the node_modules of your ~/code projects
  whose been inactive for 30 days or more.

Using cron

wipe-modules can be executed as a background job using using cron βŒ›

To set a cron job, download the cron-file file included in the repo.

$ curl -L https://raw.githubusercontent.com/bntzio/wipe-modules/master/cron-file -o ~/Desktop/cron-file

This will download the cron-file and put it in your ~/Desktop location.

The default cron-file holds the following syntax:

0 11 * * * $HOME/bin/wipe-modules ~/code_dir 30

That is the crontab (cron table) file, it instructs cron to run the wipe-modules ~/code_dir 30 script everyday at 11:00 am.

Edit the cron-file to match your own needs, see how to set up a crontab for more info.

Note: depending on how you installed wipe-modules you need to set the correct path of the wipe-modules.sh shell script in your cron-file for cron to find and execute the script.

Now set the cron-file crontab file in cron using:

$ crontab ~/Desktop/cron-file

And you're done! πŸ‘

To check if you've successfully added your crontab type:

$ crontab -l

It should display your crontab.

To edit a crontab, use crontab -e and to delete all crontabs use crontab -r.

Note that crontab -r will destroy all your crontabs, that's why it's a good idea to keep your crontab commands in a cron-file.

Cron is only supported in unix operating systems.

wipe-modules in action!

Watch this screencast to learn how to use wipe-modules and see what it does.

asciicast

License

MIT Β© Enrique Benitez