Only clear the babel-loader cache folder when invalidated (#31108)

GitOrigin-RevId: 5d97ad59748560fd48b21e6e83e118d10362dac4
This commit is contained in:
Alf Eaton
2026-02-02 09:05:07 +00:00
committed by Copybot
parent 6a68007a07
commit db70d2db25
@@ -3,8 +3,9 @@ const Path = require('path')
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
module.exports = function invalidateBabelCacheIfNeeded() { module.exports = function invalidateBabelCacheIfNeeded() {
const cachePath = Path.join(__dirname, '../../node_modules/.cache') const cacheDir = Path.join(__dirname, '../../node_modules/.cache')
const statePath = Path.join(cachePath, 'last-overleafModuleImports.json') const cachePath = Path.join(cacheDir, 'babel-loader')
const statePath = Path.join(cacheDir, 'last-overleafModuleImports.json')
let lastState = '' let lastState = ''
try { try {
lastState = fs.readFileSync(statePath, { encoding: 'utf-8' }) lastState = fs.readFileSync(statePath, { encoding: 'utf-8' })
@@ -16,15 +17,13 @@ module.exports = function invalidateBabelCacheIfNeeded() {
console.warn( console.warn(
'Detected change in overleafModuleImports, purging babel cache!' 'Detected change in overleafModuleImports, purging babel cache!'
) )
// Gracefully handle cache mount in Server Pro build, only purge nested folders and keep .cache/ folder. // Gracefully handle cache mount in Server Pro build, only purge nested folder and keep .cache/ folder.
fs.mkdirSync(cachePath, { recursive: true }) fs.mkdirSync(cacheDir, { recursive: true })
for (const name of fs.readdirSync(cachePath)) { fs.rmSync(cachePath, {
fs.rmSync(Path.join(cachePath, name), { recursive: true,
recursive: true, force: true,
force: true, maxRetries: 5,
maxRetries: 5, })
})
}
fs.writeFileSync(statePath, newState) fs.writeFileSync(statePath, newState)
} }
} }