Configuration
This page lists all configuration options available in React Compiler.
Note
For most apps, the default options should work out of the box. If you have a special need, you can use these advanced options.
// babel.config.js
module.exports = {
plugins: [
[
'babel-plugin-react-compiler', {
// compiler options
}
]
]
}; Compilation Control
These options control what the compiler optimizes and how it selects components and hooks to compile.
-
compilationModecontrols the strategy for selecting functions to compile (e.g., all functions, only annotated ones, or intelligent detection).
{
compilationMode: 'annotation' // Only compile "use memo" functions
} Version Compatibility
React version configuration ensures the compiler generates code compatible with your React version.
target specifies which React version you’re using (17, 18, or 19).
// For React 18 projects
{
target: '18' // Also requires react-compiler-runtime package
} Error Handling
These options control how the compiler responds to code that doesn’t follow the Rules of React.
panicThreshold determines whether to fail the build or skip problematic components.
// Recommended for production
{
panicThreshold: 'none' // Skip components with errors instead of failing the build
} Debugging
Logging and analysis options help you understand what the compiler is doing.
logger provides custom logging for compilation events.
{
logger: {
logEvent(filename, event) {
if (event.kind === 'CompileSuccess') {
console.log('Compiled:', filename);
}
}
}
} Feature Flags
Conditional compilation lets you control when optimized code is used.
gating enables runtime feature flags for A/B testing or gradual rollouts.
{
gating: {
source: 'my-feature-flags',
importSpecifierName: 'isCompilerEnabled'
}
} Common Configuration Patterns
Default configuration
For most React 19 applications, the compiler works without configuration:
// babel.config.js
module.exports = {
plugins: [
'babel-plugin-react-compiler'
]
}; React 17/18 projects
Older React versions need the runtime package and target configuration:
npm install react-compiler-runtime@latest {
target: '18' // or '17'
} Incremental adoption
Start with specific directories and expand gradually:
{
compilationMode: 'annotation' // Only compile "use memo" functions
}
© 2013–present Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://react.dev/reference/react-compiler/configuration