--- 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)