The panicThreshold option controls how the React Compiler handles errors during compilation.
Reference
Section titled “Reference”panicThreshold
Section titled “panicThreshold”Determines whether compilation errors should fail the build or skip optimization.
'none' | 'critical_errors' | 'all_errors'Default value
Section titled “Default value”'none'
Options
Section titled “Options”'none'(default, recommended): Skip components that can’t be compiled and continue building'critical_errors': Fail the build only on critical compiler errors'all_errors': Fail the build on any compiler diagnostic
Caveats
Section titled “Caveats”- Production builds should always use
'none' - Build failures prevent your application from building
- The compiler automatically detects and skips problematic code with
'none' - Higher thresholds are only useful during development for debugging
Production configuration (recommended)
Section titled “Production configuration (recommended)”For production builds, always use 'none'. This is the default value:
This ensures:
- Your build never fails due to compiler issues
- Components that can’t be optimized run normally
- Maximum components get optimized
- Stable production deployments
Development debugging
Section titled “Development debugging”Temporarily use stricter thresholds to find issues:
const isDevelopment = process.env.NODE_ENV === 'development';
{ panicThreshold: isDevelopment ? 'critical_errors' : 'none', logger: { logEvent(filename, event) { if (isDevelopment && event.kind === 'CompileError') { // ... } } }}