I have an Nx monorepo (https://nx.dev).
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?
I have an Nx monorepo (https://nx.dev).
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?
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: https://nx.dev/cli/clear-cache
nx clear-cache
nx reset clears the cache.
Docs on nx reset: https://nx.dev/nx/reset#reset
Docs on the cache here: https://nx.dev/using-nx/caching#local-computation-caching
The above answer nx clear-cache is for the jest cache. I would comment but no rep :)
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);
}
});
}
There is not really any command to delete the Nx cache except to skip it. 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.