---
title: target
---
The `target` option specifies which React version the compiler should generate code for.
```js
{
target: '19' // or '18', '17'
}
```
---
## Reference {/*reference*/}
### `target` {/*target*/}
Configures the React version compatibility for the compiled output.
#### Type {/*type*/}
```
'17' | '18' | '19'
```
#### Default value {/*default-value*/}
`'19'`
#### Valid values {/*valid-values*/}
- **`'19'`**: Target React 19 (default). No additional runtime required.
- **`'18'`**: Target React 18. Requires `react-compiler-runtime` package.
- **`'17'`**: Target React 17. Requires `react-compiler-runtime` package.
#### Caveats {/*caveats*/}
- Always use string values, not numbers (e.g., `'17'` not `17`)
- 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@latest`
---
## Usage {/*usage*/}
### Targeting React 19 (default) {/*targeting-react-19*/}
For React 19, no special configuration is needed:
```js
{
// defaults to target: '19'
}
```
The compiler will use React 19's built-in runtime APIs:
```js
// Compiled output uses React 19's native APIs
import { c as _c } from 'react/compiler-runtime';
```
### Targeting React 17 or 18 {/*targeting-react-17-or-18*/}
For React 17 and React 18 projects, you need two steps:
1. Install the runtime package:
```bash
npm install react-compiler-runtime@latest
```
2. Configure the target:
```js
// For React 18
{
target: '18'
}
// For React 17
{
target: '17'
}
```
The compiler will use the polyfill runtime for both versions:
```js
// Compiled output uses the polyfill
import { c as _c } from 'react-compiler-runtime';
```
---
## Troubleshooting {/*troubleshooting*/}
### Runtime errors about missing compiler runtime {/*missing-runtime*/}
If you see errors like "Cannot find module 'react/compiler-runtime'":
1. Check your React version:
```bash
npm why react
```
2. If using React 17 or 18, install the runtime:
```bash
npm install react-compiler-runtime@latest
```
3. Ensure your target matches your React version:
```js
{
target: '18' // Must match your React major version
}
```
### Runtime package not working {/*runtime-not-working*/}
Ensure the runtime package is:
1. Installed in your project (not globally)
2. Listed in your `package.json` dependencies
3. The correct version (`@latest` tag)
4. Not in `devDependencies` (it's needed at runtime)
### Checking compiled output {/*checking-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):
```js
// For React 19 (built-in runtime)
import { c } from 'react/compiler-runtime'
// ^
// For React 17/18 (polyfill runtime)
import { c } from 'react-compiler-runtime'
// ^
```
---
## Sitemap
[Overview of all docs pages](/llms.txt)