Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bntzio/wipe-modules

🗑️ Easily remove the node_modules folder of non-active projects
https://github.com/bntzio/wipe-modules

bash cleanup cron cron-jobs hacktoberfest javascript js node-modules nodejs performance shell tools unix utilities

Last synced: about 1 month ago
JSON representation

🗑️ Easily remove the node_modules folder of non-active projects

Awesome Lists containing this project

README

        

# wipe-modules [![Build Status](https://travis-ci.org/bntzio/wipe-modules.svg?branch=master)](https://travis-ci.org/bntzio/wipe-modules)

> A little agent that removes the node_modules folder of non-active projects 🗑️

![](agent-gir.gif)

## 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!](https://github.com/bntzio/wipe-modules#wipe-modules-in-action) 📺

## Inspiration

I got the idea when I saw this [Wes Bos](https://twitter.com/wesbos) tweet.

> 6 hours into a time machine restore - node_modules with millions of files is killing me [pic.twitter.com/2KirOXF2v2](https://t.co/2KirOXF2v2)

> -- Wes Bos (@wesbos) [May 1, 2017](https://twitter.com/wesbos/status/859128736989544448)

Problem solved now! 🎉🎊

## Install

Can be installed with [npm](https://www.npmjs.com/), [bpkg](http://www.bpkg.io/) or [curl](https://curl.haxx.se/).

### npm

```console
$ npm install --global wipe-modules
```

That's it! 😄

### bpkg

```console
$ bpkg install -g bntzio/wipe-modules
```

Done! 😃

### curl

```console
$ 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](https://en.wikipedia.org/wiki/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](https://en.wikipedia.org/wiki/Cron#Overview) 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](https://asciinema.org/a/119319.png)](https://asciinema.org/a/119319)

## License

MIT © [Enrique Benitez](https://bntz.io)