Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/bntzio/wipe-modules
- Owner: bntzio
- License: mit
- Created: 2017-05-01T20:18:34.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-30T13:20:04.000Z (over 1 year ago)
- Last Synced: 2024-06-20T15:51:28.049Z (3 months ago)
- Topics: bash, cleanup, cron, cron-jobs, hacktoberfest, javascript, js, node-modules, nodejs, performance, shell, tools, unix, utilities
- Language: Shell
- Homepage:
- Size: 5.58 MB
- Stars: 346
- Watchers: 6
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
- awesome-cli-apps - wipe-modules - Remove `node_modules` of inactive projects. (Development / Npm)
- fucking-awesome-cli-apps - wipe-modules - Remove `node_modules` of inactive projects. (Development / Npm)
- jimsghstars - bntzio/wipe-modules - 🗑️ Easily remove the node_modules folder of non-active projects (Shell)
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 --helpUsage: wipe-modules [path] [days] [options]
Path:
The full path of your code directoryDays:
The days you want to set to mark projects as inactiveOptions:
-D, --dry Only show node_modules to be removedExample: 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)