target
Параметр target указывает, для какой версии React компилятор должен генерировать код.
{
target: '19' // or '18', '17'
} Справочник
target
Задает совместимость с версией React для скомпилированного результата.
Тип
'17' | '18' | '19' Значение по умолчанию
'19'
Допустимые значения
-
'19': Целевая версия — React 19 (по умолчанию). Дополнительная среда выполнения не требуется. -
'18': Целевая версия — React 18. Требуется пакетreact-compiler-runtime. -
'17': Целевая версия — React 17. Требуется пакетreact-compiler-runtime.
Ограничения
- Всегда используйте строковые значения, а не числа (например,
'17', а не17) - Не указывайте версии патчей (например, используйте
'18', а не'18.2.0') - React 19 включает встроенные API среды выполнения компилятора
- Для React 17 и 18 требуется установить
react-compiler-runtime@latest
Использование
Целевая версия — React 19 (по умолчанию)
Для React 19 специальная настройка не требуется:
{
// defaults to target: '19'
} Компилятор будет использовать встроенные API среды выполнения React 19:
// Compiled output uses React 19's native APIs
import { c as _c } from 'react/compiler-runtime'; Целевая версия — React 17 или 18
Для проектов на React 17 и React 18 выполните два шага:
- Установите пакет среды выполнения:
npm install react-compiler-runtime@latest - Настройте целевую версию:
// For React 18
{
target: '18'
}
// For React 17
{
target: '17'
} Для обеих версий компилятор будет использовать среду выполнения с полифиллом:
// Compiled output uses the polyfill
import { c as _c } from 'react-compiler-runtime'; Устранение неполадок
Ошибки времени выполнения из-за отсутствия среды выполнения компилятора
Если вы видите ошибки, например “Cannot find module ‘react/compiler-runtime’“:
-
Проверьте версию React:
npm why react -
Если используется React 17 или 18, установите среду выполнения:
npm install react-compiler-runtime@latest -
Убедитесь, что целевая версия соответствует версии React:
{ target: '18' // Must match your React major version }
Пакет среды выполнения не работает
Убедитесь, что пакет среды выполнения:
- Установлен в проекте (а не глобально)
- Указан в зависимостях
package.json - Имеет правильную версию (тег
@latest) - Не находится в
devDependencies(он нужен во время выполнения)
Проверка скомпилированного результата
Чтобы убедиться, что используется правильная среда выполнения, обратите внимание на различия в импорте (react/compiler-runtime для встроенной, react-compiler-runtime для отдельного пакета в версиях 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'
// ^
© 2013–present Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://react.dev/reference/react-compiler/target