diff --git a/packages/babel-core/src/api/register/cache.js b/packages/babel-core/src/api/register/cache.js index d02b8694e1..2682714f5b 100644 --- a/packages/babel-core/src/api/register/cache.js +++ b/packages/babel-core/src/api/register/cache.js @@ -13,7 +13,18 @@ let data = {}; */ export function save() { - fs.writeFileSync(FILENAME, JSON.stringify(data, null, " ")); + let serialised = {}; + try { + serialised = JSON.stringify(data, null, " "); + } catch (err) { + if (err.message === "Invalid string length") { + err.message = "Cache too large so it's been cleared."; + console.error(err.stack); + } else { + throw err; + } + } + fs.writeFileSync(FILENAME, serialised); } /**