From db70d2db25a58edd6db9cd820bb533e6ca9aa774 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Fri, 30 Jan 2026 11:27:18 +0000 Subject: [PATCH] Only clear the babel-loader cache folder when invalidated (#31108) GitOrigin-RevId: 5d97ad59748560fd48b21e6e83e118d10362dac4 --- .../invalidate-babel-cache-if-needed.js | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/services/web/frontend/macros/invalidate-babel-cache-if-needed.js b/services/web/frontend/macros/invalidate-babel-cache-if-needed.js index df9d00eb63..05a1071cfd 100644 --- a/services/web/frontend/macros/invalidate-babel-cache-if-needed.js +++ b/services/web/frontend/macros/invalidate-babel-cache-if-needed.js @@ -3,8 +3,9 @@ const Path = require('path') const Settings = require('@overleaf/settings') module.exports = function invalidateBabelCacheIfNeeded() { - const cachePath = Path.join(__dirname, '../../node_modules/.cache') - const statePath = Path.join(cachePath, 'last-overleafModuleImports.json') + const cacheDir = Path.join(__dirname, '../../node_modules/.cache') + const cachePath = Path.join(cacheDir, 'babel-loader') + const statePath = Path.join(cacheDir, 'last-overleafModuleImports.json') let lastState = '' try { lastState = fs.readFileSync(statePath, { encoding: 'utf-8' }) @@ -16,15 +17,13 @@ module.exports = function invalidateBabelCacheIfNeeded() { console.warn( 'Detected change in overleafModuleImports, purging babel cache!' ) - // Gracefully handle cache mount in Server Pro build, only purge nested folders and keep .cache/ folder. - fs.mkdirSync(cachePath, { recursive: true }) - for (const name of fs.readdirSync(cachePath)) { - fs.rmSync(Path.join(cachePath, name), { - recursive: true, - force: true, - maxRetries: 5, - }) - } + // Gracefully handle cache mount in Server Pro build, only purge nested folder and keep .cache/ folder. + fs.mkdirSync(cacheDir, { recursive: true }) + fs.rmSync(cachePath, { + recursive: true, + force: true, + maxRetries: 5, + }) fs.writeFileSync(statePath, newState) } }