This page lists all configuration options available in React Compiler.
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
}
]
]
}; These options control what the compiler optimizes and how it selects components and hooks to compile.
compilationMode controls the strategy for selecting functions to compile (e.g., all functions, only annotated ones, or intelligent detection).{
compilationMode: 'annotation' // Only compile "use memo" functions
} 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
} 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
} 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);
}
}
}
} 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'
}
} For most React 19 applications, the compiler works without configuration:
// babel.config.js
module.exports = {
plugins: [
'babel-plugin-react-compiler'
]
}; Older React versions need the runtime package and target configuration:
npm install react-compiler-runtime@latest {
target: '18' // or '17'
} 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