Установка и настройка React.js

Почему большинство гайдов по установке React.js вводят в заблуждение
Начинающие разработчики часто слепо копируют команды из старых инструкций, не учитывая ключевой нюанс: официальная утилита Create React App в 2026 году считается устаревшей для продакшена. Эксперты уже давно перешли на Vite или Next.js, но новички продолжают плодить проекты с раздутой сборкой. Если вы используете CRA и замечаете тормоза при старте — это не ваша вина, так работает «тяжелый» Webpack.
Профессиональный подход: настройте проект через npm create vite@latest my-app --template react. Вы получите в 10 раз более быстрый HMR (горячую перезагрузку) и избавитесь от лишних зависимостей. Но не делайте ошибку — не удаляйте index.html из корня, иначе Vite перестанет видеть точку входа.
Node.js: версия решает всё
Распространённое заблуждение: «Установи последний Node.js и забудь». На практике стабильные LTS-версии (например, 20.x или 22.x) дают меньше сюрпризов, чем «модные» 23-е. Но есть один профессиональный трюк: используйте nvm для переключения версий. Вам часто придётся это делать, так как легаси-проекты могут требовать Node 16, а новый React 19 — уже 18+. Если проигнорировать несовместимость, получите ошибку Error: error:0308010C при сборке — типичная ловушка для тех, кто не смотрит в changelog.
Ошибка новичка: npm или yarn
Многие советуют yarn как «более быстрый», но в 2026-м разница нивелирована. Ключевой момент — используйте npm ci вместо npm install в CI/CD. Это гарантирует, что package-lock.json не будет перезаписан случайными версиями. В противном случае на сервере вы получите баги, которые не воспроизводятся локально — классический случай погони за призраком.
Настройка TypeScript: грабли с tsconfig
Никогда не копируйте tsconfig из шаблонов «как есть». Профессионалы всегда добавляют "strict": true и "noUncheckedIndexedAccess": true. Без этого TypeScript превращается в «крашеный JavaScript» и не защищает от багов с undefined. Ещё один неочевидный нюанс: если ваш проект использует абсолютные импорты (через @/), настройте paths в tsconfig.json и алиасы в Vite. Указывать только в одном месте — значит получить красные подчёркивания в IDE, хотя сборка пройдёт — вот где теряется время на отладку.
Среда разработки: что молчат в туториалах
Стандартные статьи советуют установить ESLint и Prettier. Эксперты добавляют сюда eslint-plugin-react-hooks и eslint-plugin-react-refresh. Первый отлавливает некорректные хуки, а второй предотвращает потерю состояния при горячей перезагрузке. Если вы не пропишете этот плагин, то каждое сохранение файла будет сбрасывать локальный стейт — коварный баг, который заставит вас перезагружать страницу вручную. Настройте vite.config.ts так, чтобы server.hmr.overlay был включён: белая страница вместо ошибки — признак любительского подхода.
Секреты package.json: о которых молчат
В файл package.json обязательно добавьте поле "type": "module". Без него современные ESM-импорты будут выдавать require() is not defined. Ещё одно профессиональное правило: не храните devDependencies в корневом объекте, если используете монорепозиторий — это приведёт к конфликтам версий. Используйте workspaces (npm workspaces или pnpm).
- Не пишите
"start": "react-scripts start"— пережиток CRA. Лучше"dev": "vite". - Добавьте
"preview": "vite preview"для локального прогона билда — это покажет реальное поведение, а не dev-режим. - Удалите
homepageиз package.json, если не деплоите на GitHub Pages — этот параметр ломает роутинг.
Деплой и переменные окружения: тихая катастрофа
Распространённая ошибка — называть переменные без префикса VITE_ (для Vite) или REACT_APP_ (для CRA). Они просто не подхватятся. Но профессиональный совет глубже: храните в .env только то, что можно показать во фронтенде. Никогда не кладите туда API-ключи — они попадут в браузер. Для бекенд-секретов используйте serverMiddleware или BFF (Backend For Frontend).
Заключение для тех, кто хочет выше джуниора
После установки обязательно выполните проверку: откройте браузер и убедитесь, что HMR работает без перегрузки страницы. Создайте компонент с ошибкой — если увидите красный оверлей с кодом, значит настройка выполнена грамотно. Если видите пустой экран — вернитесь к настройке ESLint и плагинов. Помните: 80% времени при старте проекта уходит не на сам React, а на конфигурацию окружения, и наша задача — сделать эти 80% невидимыми для разработчика.
Добавлено: 07.05.2026
