Содержание статьи

Версия React напрямую влияет на доступные хуки, поведение рендера, поддержку Concurrent Features и совместимость с библиотеками. Например, useId появился только в React 18, а автоматический batching обновлений состояния работает иначе, чем в React 17. Без точного знания версии сложно понять, почему код из документации или чужого репозитория не запускается в текущем проекте.
На практике информация о версии React требуется при отладке ошибок, обновлении зависимостей, настройке сборщиков или подключении сторонних компонентов. Многие библиотеки указывают минимальную поддерживаемую версию React, а некоторые API помечены как устаревшие и удаляются в новых релизах. Проверка версии позволяет сразу исключить класс несовместимости, а не тратить время на поиск причин в логике приложения.
Способ определения версии зависит от контекста: используется ли npm, Yarn или pnpm, есть ли доступ к терминалу, запущено ли приложение в браузере. В одном случае достаточно посмотреть package.json, в другом – выполнить команду в консоли или обратиться к объекту React.version во время выполнения. Каждый метод даёт точный результат, если понимать, где именно искать данные.
Важно учитывать, что в проекте может быть установлено несколько версий React одновременно, особенно при использовании монорепозиториев или устаревших зависимостей. Поэтому поверхностная проверка не всегда отражает реальную версию, которая участвует в рендере. Разбор конкретных способов позволяет выбрать подходящий вариант и получить корректную информацию без догадок.
Определение версии React в файле package.json

Запись версии может иметь разные форматы. Например, «react»: «18.2.0» фиксирует конкретный релиз, а «^17.0.2» допускает установку всех минорных и патч-обновлений в пределах мажорной версии. Символ ~ ограничивает обновления только патч-релизами, а отсутствие префиксов полностью блокирует автоматическое изменение версии.
При анализе package.json важно учитывать, что указанные значения не всегда совпадают с реально установленной версией. Если файл был изменён вручную без переустановки зависимостей, фактическая версия может отличаться. В таких ситуациях package.json отражает лишь желаемую конфигурацию, а не текущее состояние проекта.
Для базовой ориентации package.json подходит лучше всего, так как позволяет быстро определить ожидаемую версию React без запуска приложения и использования командной строки.
Проверка установленной версии с помощью команды npm ls react

Команду необходимо выполнять из корневой директории проекта, где расположен файл package.json. Результат отображает иерархию зависимостей, включая вложенные установки React, если они присутствуют.
- версия React указывается рядом с названием пакета react@x.x.x;
- если React используется напрямую, версия будет отображена на верхнем уровне;
- при наличии нескольких версий React они будут показаны в разных ветках дерева;
- пометка deduped означает, что используется общая версия для нескольких зависимостей.
Если React не установлен напрямую, а используется через другую библиотеку, команда всё равно покажет его версию. Это особенно полезно при отладке конфликтов, когда пакет ожидает одну версию React, а в проекте используется другая.
Метод с npm ls react позволяет получить достоверные данные о текущем состоянии зависимостей и избежать ошибок, связанных с устаревшими или дублирующимися версиями библиотеки.
Получение версии React в проекте через Yarn

При использовании Yarn информация об установленной версии React доступна через команды, работающие с локальным деревом зависимостей. Базовый способ – выполнить yarn list react в корне проекта. Команда выведет все найденные версии пакета react, включая вложенные зависимости.
Если проект использует Yarn версии 2 и выше (Berry), команда yarn list может работать иначе или быть отключена по умолчанию. В этом случае применяется yarn why react, которая показывает, какая версия React установлена и какие пакеты её требуют.
Команда yarn why react полезна в ситуациях, когда React присутствует в проекте не напрямую. Она отображает путь установки, версию пакета и причину его появления в зависимостях, что помогает выявить конфликты или дублирование.
Для проверки соответствия между ожидаемой и фактической версией React стоит сравнивать данные Yarn с содержимым package.json и yarn.lock. Это позволяет убедиться, что используется именно та версия библиотеки, которая участвует в сборке и выполнении приложения.
Определение версии React при использовании pnpm

Из-за особенностей pnpm, использующего жёсткие ссылки и общий стор, React может быть установлен один раз и разделяться между пакетами. Команда pnpm list react показывает, какая версия реально используется текущим проектом, даже если она физически находится вне директории node_modules.
Если React подключён транзитивно, а не напрямую, более информативной будет команда pnpm why react. Она отображает причину установки пакета, цепочку зависимостей и конкретную версию, что помогает понять, какой модуль требует React.
Дополнительно можно сверить полученные данные с файлом pnpm-lock.yaml, где зафиксирована точная версия React, использованная при последней установке. Такой подход исключает расхождения между конфигурацией и текущим состоянием окружения.
Просмотр версии в файле node_modules/react/package.json
Файл node_modules/react/package.json содержит фактическую версию React, установленную в проекте. Поле version отражает конкретный релиз, который используется сборщиком и выполняется в приложении.
Чтобы определить версию, откройте файл в любом текстовом редакторе или выполните команду cat node_modules/react/package.json (Linux/Mac) или type node_modules\react\package.json (Windows). Ищите строку с ключом «version», например, «version»: «18.2.0».
Этот метод полезен, если версии, указанные в package.json проекта, и фактические версии в node_modules могут различаться, например, после ручного изменения зависимостей или установки через разные менеджеры пакетов.
Для проектов с монорепозиториями важно проверять версию именно в папке пакета, используемого текущим приложением. Иногда в node_modules могут находиться несколько копий React, и версия в корневом node_modules может отличаться от версии в локальном пакете.
Проверка через node_modules/react/package.json даёт 100% точную информацию о том, какой релиз React реально загружен при сборке и исполнении, что особенно важно при диагностике ошибок совместимости или подключении сторонних компонентов.
React предоставляет встроенное свойство React.version, которое хранит строку с текущей версией библиотеки. Этот метод позволяет узнать точную версию, загруженную в рантайме, без обращения к файловой системе или менеджерам пакетов.
Для проверки версии в браузере откройте консоль разработчика и выполните:
console.log(React.version);
В приложении на React это может выглядеть так:
import React from 'react';
function App() {
console.log('Текущая версия React:', React.version);
return Проверка версии;
}
export default App;
После запуска приложения в консоли появится строка, например, 18.2.0, что позволяет убедиться, какая версия реально используется при рендере компонентов.
Метод React.version особенно полезен для приложений, где зависимости могут подменяться через сборщики, CDN или внешние библиотеки, так как отражает версию, действительно загруженную в браузере или Node-среде.
Определение версии React через расширение React Developer Tools

Расширение React Developer Tools позволяет определить версию React, загруженную в приложении, без доступа к файловой системе или командной строке. Оно интегрируется в браузер и отображает дерево компонентов вместе с информацией о библиотеке.
После установки расширения откройте панель разработчика и переключитесь на вкладку React. В верхней части панели обычно отображается версия React, например, React 18.2.0, которая используется текущей страницей.
Помимо основной версии, инструмент позволяет:
- проверить, какие компоненты используют функциональные хуки или классовые компоненты;
- выявить, если на странице загружены несколько версий React, что часто вызывает ошибки Hooks или конфликт контекстов;
- отследить совместимость сторонних библиотек с конкретной версией React в рантайме.
Метод через React Developer Tools полезен для приложений, развёрнутых в браузере или на внешних страницах, когда нет прямого доступа к package.json или локальной папке node_modules. Он даёт точную информацию о версии, фактически используемой в рендере компонентов.
Вопрос-ответ:
Можно ли определить версию React без установки дополнительных инструментов?
Да, версия React доступна через несколько встроенных способов. Например, её можно проверить в файле package.json в секции dependencies или через React.version в коде приложения. Эти методы не требуют установки сторонних расширений или библиотек и показывают, какая версия используется в проекте.
Почему версия в package.json может отличаться от фактической?
Иногда в package.json указана желаемая версия React, а не та, что реально установлена. Это может происходить после ручного изменения зависимостей или если пакет был обновлён с помощью npm, Yarn или pnpm. Чтобы узнать фактическую версию, лучше использовать команды npm ls react, yarn list react или проверить файл node_modules/react/package.json.
Как увидеть версию React в браузере?
Для этого можно использовать React Developer Tools. После открытия панели разработчика вкладка React покажет загруженную версию библиотеки. Также можно выполнить console.log(React.version) в коде приложения, чтобы вывести её в консоль. Оба способа дают точное значение, используемое при рендере компонентов.
Можно ли определить версию React в проекте, использующем pnpm?
Да, команда pnpm list react покажет установленную версию в дереве зависимостей. Если React установлен транзитивно, полезна команда pnpm why react, которая покажет, какие пакеты требуют эту версию и где она находится. Также можно сверить данные с pnpm-lock.yaml для точной информации.
Что делать, если в проекте несколько версий React?
В больших проектах, особенно с монорепозиториями, разные пакеты могут использовать разные версии React. Проверка через npm ls react, yarn list react или pnpm list react покажет все установленные версии. В браузере React Developer Tools или React.version покажут, какая версия используется в текущем рендере. Это помогает выявить конфликты и принять решение о согласовании версии между пакетами.
Как узнать, какая версия React используется в уже запущенном приложении на странице?
Если приложение уже работает в браузере, узнать версию React можно через расширение React Developer Tools или напрямую из кода. В панели разработчика вкладка React покажет текущую версию библиотеки, загруженную на странице. Альтернативно можно добавить в код строку console.log(React.version), которая выведет версию в консоль при рендере компонентов. Эти способы отражают именно ту версию, которая используется в рантайме, даже если в package.json указана другая.
