How to clear Nx cache
Sophia Terry
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 :)
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
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.
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); } });
}