How to clear Nx cache

I have an Nx monorepo (). It has a folder with Nx cache (./node_modules/.cache/nx/). Its size for now is over 3GB.

Is there a command for clear this cache?

5 Answers

nx reset clears the cache.

Docs on nx reset:

Docs on the cache here:

The above answer nx clear-cache is for the jest cache. I would comment but no rep :)

2

Just delete the whole 'nx' cache folder:

rm -rf ./node_modules/.cache/nx
1

This works in the latest version as of today (February 12, 2022). I am uncertain why this is no longer in the CLI documentation despite evidence of it being there in the past:

nx clear-cache

3

There is not really any command to delete the Nx cache except to skip it or use the following command.

npx nx run build --skip-nx-cache

npx nx run test --skip-nx-cache

If size of the directory is your problem then may be running your node script as a cron job might be an option. In case, location of the directory is your concern then you also configure it and move it outside node_modules like this.

1

I have implemented such a solution, but do not find it convenient. Perhaps NX has a command to clear its cache, but I did not find it.

package.json

 "scripts": { "nx": "nx", "postnx": "node checkAndClearCache.js", ...

checkAndClearCache.js

const fs = require('fs');
const rimraf = require('rimraf');
const getSize = require('get-folder-size');
const cachePath = 'node_modules/.cache/nx';
const maxCacheMb = 2048;
if (fs.existsSync(cachePath)) { getSize(cachePath, (err, size) => { if (err) { throw err; } const MBSize = (size / 1024 / 1024).toFixed(2); console.log(`*** NX cache size is ${MBSize} Megabytes`); if (MBSize > maxCacheMb) { console.log('*** CLEAR NX CACHE ***'); rimraf.sync(cachePath); } });
}

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like