The target
option specifies which React version the compiler should generate code for.
{
target: '19' // or '18', '17'
}
Reference
target
Configures the React version compatibility for the compiled output.
Type
'17' | '18' | '19'
Default value
'19'
Valid values
'19'
: Target React 19 (default). No additional runtime required.'18'
: Target React 18. Requiresreact-compiler-runtime
package.'17'
: Target React 17. Requiresreact-compiler-runtime
package.
Caveats
- Always use string values, not numbers (e.g.,
'17'
not17
) - Don’t include patch versions (e.g., use
'18'
not'18.2.0'
) - React 19 includes built-in compiler runtime APIs
- React 17 and 18 require installing
react-compiler-runtime@rc
Usage
Targeting React 19 (default)
For React 19, no special configuration is needed:
{
// defaults to target: '19'
}
The compiler will use React 19’s built-in runtime APIs:
// Compiled output uses React 19's native APIs
import { c as _c } from 'react/compiler-runtime';
Targeting React 17 or 18
For React 17 and React 18 projects, you need two steps:
- Install the runtime package:
npm install react-compiler-runtime@rc
- Configure the target:
// For React 18
{
target: '18'
}
// For React 17
{
target: '17'
}
The compiler will use the polyfill runtime for both versions:
// Compiled output uses the polyfill
import { c as _c } from 'react-compiler-runtime';
Troubleshooting
Runtime errors about missing compiler runtime
If you see errors like “Cannot find module ‘react/compiler-runtime’“:
-
Check your React version:
npm why react -
If using React 17 or 18, install the runtime:
npm install react-compiler-runtime@rc -
Ensure your target matches your React version:
{target: '18' // Must match your React major version}
Runtime package not working
Ensure the runtime package is:
- Installed in your project (not globally)
- Listed in your
package.json
dependencies - The correct version (
@rc
tag) - Not in
devDependencies
(it’s needed at runtime)
Checking compiled output
To verify the correct runtime is being used, note the different import (react/compiler-runtime
for builtin, react-compiler-runtime
standalone package for 17/18):
// For React 19 (built-in runtime)
import { c } from 'react/compiler-runtime'
// ^
// For React 17/18 (polyfill runtime)
import { c } from 'react-compiler-runtime'
// ^