diff --git a/packages/react/src/migrations/update-21-0-0/update-babel-loose.spec.ts b/packages/react/src/migrations/update-21-0-0/update-babel-loose.spec.ts index 8fcb60826d..4a9f79c2b7 100644 --- a/packages/react/src/migrations/update-21-0-0/update-babel-loose.spec.ts +++ b/packages/react/src/migrations/update-21-0-0/update-babel-loose.spec.ts @@ -50,4 +50,21 @@ describe('update-babel-loose migration', () => { const content = tree.read(filePath, 'utf-8'); expect(content).toBe('invalid json content'); }); + + it('should work when @nx/react/babel is not present', async () => { + const filePath = '.babelrc'; + tree.write(filePath, '{ "preset": [] } }'); + + await updateBabelLoose(tree); + + let content = tree.read(filePath, 'utf-8'); + expect(content).toMatch('{ "preset": [] } }'); + + tree.write(filePath, '{}'); + + await updateBabelLoose(tree); + + content = tree.read(filePath, 'utf-8'); + expect(content).toMatch('{}'); + }); }); diff --git a/packages/react/src/migrations/update-21-0-0/update-babel-loose.ts b/packages/react/src/migrations/update-21-0-0/update-babel-loose.ts index 5ae9f952ec..426b06cc74 100644 --- a/packages/react/src/migrations/update-21-0-0/update-babel-loose.ts +++ b/packages/react/src/migrations/update-21-0-0/update-babel-loose.ts @@ -10,11 +10,11 @@ export default async function updateBabelLoose(tree: Tree) { if (!path.endsWith('.babelrc')) return; try { updateJson(tree, path, (babelConfig) => { - if (!Array.isArray(babelConfig.presets)) return; + if (!Array.isArray(babelConfig.presets)) return babelConfig; const ourPreset = babelConfig.presets.find( (p) => Array.isArray(p) && p[0] === '@nx/react/babel' ); - if (!ourPreset || !ourPreset[1]) return; + if (!ourPreset || !ourPreset[1]) return babelConfig; const options = ourPreset[1]; if (options['classProperties']?.loose !== undefined) { options.loose = options['classProperties'].loose;