clean_node

This script will delete the node_modules and .turbo directories, and lock files (package-lock.json/pnpm-lock.yaml/yarn.lock) in the given directory ($PWD if not given).

This is useful to get a clean slate after dependency updates.

The following parameters are optional:

k

keep lock files (package-lock.json/pnpm-lock.yaml/yarn.lock)

r

recursively delete files

t

keep .turbo directories

Copy the script into your Node.js project and add it as a custom script to your package.json file:

package.json
{
...
  "scripts": {
    "clean:node": "scripts/clean_node.sh"
  }
}
$ node --run clean:node && npm install
$ node --run clean:node && pnpm install
$ node --run clean:node && yarn install

Usage

$ scripts/nodejs/clean_node.sh

$ tree --noreport /tmp/nodejs-example-project
/tmp/nodejs-example-project
├── .turbo
├── sub
│   ├── .turbo
│   ├── sub-sub
│   │   ├── .turbo
│   │   ├── node_modules
│   │   └── pnpm-lock.yaml
│   ├── node_modules
│   └── yarn.lock
├── node_modules
└── package-lock.json

$ scripts/nodejs/clean_node.sh /tmp/nodejs-example-project
$ tree --noreport /tmp/nodejs-example-project
/tmp/nodejs-example-project
└── sub
    ├── .turbo
    ├── sub-sub
    │   ├── .turbo
    │   ├── node_modules
    │   └── pnpm-lock.yaml
    ├── node_modules
    └── yarn.lock

$ scripts/nodejs/clean_node.sh -r -k -t /tmp/nodejs-example-project
$ tree --noreport /tmp/nodejs-example-project
/tmp/nodejs-example-project
└── sub
    ├── .turbo
    ├── sub-sub
    │   ├── .turbo
    │   └── pnpm-lock.yaml
    └── yarn.lock

$ scripts/nodejs/clean_node.sh -r -t /tmp/nodejs-example-project
$ tree --noreport /tmp/nodejs-example-project
/tmp/nodejs-example-project
└── sub
    ├── .turbo
    └── sub-sub
        └── .turbo

$ scripts/nodejs/clean_node.sh -r /tmp/nodejs-example-project
$ tree --noreport /tmp/nodejs-example-project
/tmp/nodejs-example-project
└── sub
    └── sub-sub