логотип PurpleSchool
логотип PurpleSchool

Что такое Vite и как запускать проекты React через него

Автор

Олег Марков

Введение

Когда вы начинаете новый проект на React, важно выбрать удобный, быстрый инструмент для сборки и разработки. В последние годы разработчики массово переходят на Vite – сверхскоростной сборщик, сочетающий последние тренды web-разработки с простым управлением зависимостями. В этой статье вы узнаете, что из себя представляет Vite, какие у него преимущества по сравнению с классическими инструментами вроде Create React App, и как просто и эффективно создавать React-проекты через Vite на практике.

Что такое Vite

Vite (читается как "вит", от французского “быстро”) — это современный инструмент и сборщик проектов для фронтенд-разработки. Автором Vite является Эван Ю, которого вы, возможно, знаете как создателя фреймворка Vue.js.

Главная задача Vite — предложить разработчикам по-настоящему быстрый и гибкий путь для старта и ведения современных web-проектов. Vite заменяет собой такие инструменты, как Webpack, Parcel или Rollup, обеспечивая при этом минимальное время запуска и обновления кода при разработке.

Основные идеи и преимущества Vite

Вот ключевые отличия и особенности Vite, которые делают его заметным среди других сборщиков:

  • Молниеносный старт dev-сервера — Vite использует "native ESM" в браузере, то есть модульную систему ES, позволяя загружать только те файлы, которые сейчас требуются странице.
  • Горячая перезагрузка (HMR) — Изменения в файлах моментально отображаются в браузере без полной перезагрузки страницы.
  • Продвинутая сборка — Для продакшн-версии проектов Vite использует Rollup, что гарантирует оптимизированную сборку с продвинутым tree-shaking (удалением неиспользуемого кода).
  • Плагин-ориентированная архитектура — Можно подключать разные плагины, добавлять поддержку CSS-препроцессоров, TypeScript и других технологий.
  • Минимальный boilerplate — Очень мало лишних файлов и настроек по сравнению со старыми генераторами.

Как Vite работает "под капотом"

Для режима разработки Vite запускает локальный dev-сервер, который почти ничего не компилирует заранее. В браузер подаются JS-модули "как есть", и только те файлы, что реально запрошены пользователем. Для финальной сборки "vite build" запускает Rollup и собирает оптимальный бандл, готовый к деплою.

Vite — это современный инструмент для сборки фронтенда, который обеспечивает быструю и эффективную разработку React-приложений. Благодаря использованию ES modules и оптимизации процесса сборки, Vite позволяет значительно ускорить запуск и обновление проектов. Если вы хотите детальнее изучить Vite и узнать, как использовать его для запуска React-проектов — приходите на наш большой курс Основы React, React Router и Redux Toolkit. На курсе 177 уроков и 17 упражнений, AI-тренажеры для безлимитной практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.

Установка Vite и создание React проекта

Давайте теперь перейдем к практике. В этом разделе я покажу вам, как быстро поднять современный React-проект через Vite — без лишнего boilerplate и долгой установки.

Требования к системе

Для начала убедитесь, что у вас установлен Node.js версии 14.18+, 16+ или новее. Проверить установленную версию можно так:

node -v

Если необходимо установить или обновить Node.js — это можно сделать с официального сайта nodejs.org или через ваш менеджер пакетов.

Инициализация нового проекта через Vite

Смотрите, Vite предлагает свой способ создания новых приложений через официальную утилиту npm или yarn (или pnpm):

Способ 1: Используем npm

npm create vite@latest my-react-vite-app -- --template react
# Здесь:
# my-react-vite-app — имя вашего проекта
# --template react — указываем, что хотим шаблон React

Способ 2: Альтернатива с помощью yarn или pnpm

yarn create vite my-react-vite-app --template react
# или
pnpm create vite my-react-vite-app --template react

Пояснение к процессу

  • После выполнения команды выбирается имя папки и шаблон (React, TypeScript, Vue и т.д.).
  • Vite сразу развернет минимальную структуру проекта — никаких ненужных файлов.
  • В папке "my-react-vite-app" будут только необходимые для старта файлы.

Установка зависимостей

После инициализации шаблона перейдите в ваш проект и установите зависимости:

cd my-react-vite-app
npm install

Если вы предпочитаете yarn или pnpm — используйте соответствующие команды.

Структура проекта

Открывайте проект в редакторе: вы увидите минимальную структуру файлов:

  • index.html — главная точка входа, Vite использует его как шаблон для html.
  • src/main.jsx — основной файл старта вашего приложения.
  • src/App.jsx — корневой React-компонент.
  • vite.config.js (создается автоматически, если вам нужны кастомизации).

Пример содержимого main.jsx: ```jsx import React from 'react' import ReactDOM from 'react-dom/client' import App from './App.jsx' import './index.css'

ReactDOM.createRoot(document.getElementById('root')).render( , ) // Здесь создается корень React и рендерится главный компонент App в элемент с id root ```

Запуск проекта в режиме разработки

Теперь можно запускать проект:

npm run dev
# Или через yarn/pnpm: yarn dev или pnpm dev

Если всё сделано корректно, dev-сервер будет запущен по умолчанию на http://localhost:5173/. Вы увидите стандартное приветствие Vite+React.

Каждое изменение в компонентах (например, в App.jsx) сразу же появится в браузере — Vite обеспечивает быструю и плавную "горячую перезагрузку" (HMR).

Базовая настройка и возможности Vite для React

Давайте более подробно посмотрим, что еще может предложить Vite, помимо скорости и простоты.

Работа с файлами и импортами

Vite поддерживает "alias" для путей (например, чтобы писать @/components/Button вместо длинных относительных путей). Для этого откройте или создайте vite.config.js:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'

export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'), // Теперь можно использовать @ в импортах
    },
  },
})
// Теперь импорт выглядит так: import Button from '@/components/Button.jsx'

Использование CSS и препроцессоров

Vite "из коробки" работает с CSS, а также поддерживает PostCSS, Less, Sass и другие препроцессоры.

Если хотите использовать Sass, просто установите пакет:

npm install -D sass

Теперь можете писать импорты вида: js import './styles/main.scss'

Поддержка TypeScript

Добавить TypeScript в ваш Vite-React проект можно двумя способами:

  • Через шаблон: при создании проекта указывайте шаблон react-ts.
  • В существующий проект: добавьте файл tsconfig.json и установите зависимости.

Пример команды для старта нового TypeScript-проекта:

npm create vite@latest my-react-ts-app -- --template react-ts

Подключение плагинов и расширение возможностей

По мере роста проекта, вероятно, появится необходимость добавить дополнительные плагины, например, для автоматизации импортов, поддержки PWA или аналитики. Установка плагина — аналогична npm-пакетам:

npm install vite-plugin-pwa -D

Настройка производится обычно через объект plugins в vite.config.js.

Сборка проекта для продакшена

Когда приложение готово к публикации, Vite позволяет легко собрать оптимальный бандл. Выполните команду:

npm run build

После сборки появится папка dist, в которой будет лежать ваш минифицированный и оптимизированный проект (HTML, JS, CSS, ассеты).

Просмотр собранного проекта

Для запуска собранного проекта на локальном сервере используйте команду:

npm run preview

Это удобно для финального тестирования перед публикацией — сервер запустится в том же виде, в каком бы работал на продакшене.

Главные отличия от Create React App (CRA)

Многие разработчики интересуются, чем сборка на Vite отличается от классических CRA. Вот самые заметные аспекты:

  • Скорость запуска и HMR
    Vite запускается за доли секунды, CRA может думать по 10-20 секунд на средних проектах.
  • Гибкая настройка
    В Vite проще добавлять плагины, менять конфиг, расширять возможности.
  • Чище структура
    В проекте на Vite почти нет лишнего кода или запутанных файлов.
  • Быстрой сборка
    Файлы бандлятся с помощью Rollup, результат становится компактнее и быстрее.
  • Типы импортов
    Возможны гибкие alias и поддержка модулей из коробки.

Примеры интеграции популярных инструментов (React Router, Redux, и др.)

Vite по умолчанию совместим со всеми популярными React-инструментами. Вот быстрые шаги по интеграции некоторых из них:

React Router

Установка и подключение такой же, как в обычном проекте React:

npm install react-router-dom

Далее используйте Router-компоненты, как привычно.

Redux Toolkit

npm install @reduxjs/toolkit react-redux

Затем настройте store и провайдер, как обычно — никаких уникальных настроек под Vite!

Советы по оптимизации и кастомизации Vite

Оптимизация ассетов

Vite автоматически оптимизирует статические файлы (svg, png, шрифты, медиа). Ассеты из папки public доступны напрямую, а из src можно импортировать для получения url-адреса:

import Logo from './assets/logo.svg'
<img src={Logo} alt="my logo" />
// Такой импорт удобен для динамики и будет оптимизирован в build-режиме

Работа с ENV-переменными

Vite поддерживает переменные окружения через .env файлы:

  • VITE_ — любой переменной, которую вы хотите использовать в коде, нужно добавлять префикс VITE_.
  • Создайте .env, запишите переменную: VITE_API_URL=https://api.example.com
  • Используйте в коде: js const apiUrl = import.meta.env.VITE_API_URL

Расширенная конфигурация

Если понадобилась особая настройка сервера (например, прокси на бэкенд), можно добавить в vite.config.js:

export default defineConfig({
  server: {
    proxy: {
      '/api': 'http://localhost:5000', // все запросы к /api перенаправляются на backend
    },
  },
})

Заключение

Vite открывает перед React-разработкой быстрый и легкий путь к современному фронтенду. Благодаря минимальной структуре, сверхбыстрому старту и гибкой системе плагинов, вы быстрее запускаете проекты, меньше отвлекаетесь на сборочный конфиг и можете сконцентрироваться на логике приложения. Освоить Vite просто — достаточно инициализировать новый проект через одну команду и сразу приступать к работе. С ним нет необходимости глубоко разбираться в тонкостях настройки сборщиков – всё работает из коробки, но при этом при необходимости умеет быть невероятно гибким.

Vite значительно ускоряет разработку. Для создания сложных приложений необходимо уметь управлять состоянием и роутингом. Курс Основы React, React Router и Redux Toolkit поможет освоить все необходимые аспекты. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в основы React уже сегодня.

Частозадаваемые технические вопросы по теме статьи и ответы на них

Как добавить поддержку абсолютных путей при импортах в старом проекте на Vite?

Откройте vite.config.js и добавьте блок resolve и нужные alias, используя модуль path:

import path from 'path'
export default {
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src')
    }
  }
}

Теперь вы сможете использовать импорты вроде import MyComponent from '@/components/MyComponent'.

Можно ли подключить Tailwind CSS к проекту React на Vite?

Да, Tailwind ставится как обычно:

  1. Установите пакеты:
    npm install -D tailwindcss postcss autoprefixer
  2. Запустите инициализацию:
    npx tailwindcss init -p
  3. Добавьте Tailwind директивы в src/index.css: @tailwind base; @tailwind components; @tailwind utilities;
  4. Импортируйте этот файл в main.jsx — теперь Tailwind работает!

Как изменить порт development сервера Vite?

В файле vite.config.js добавьте блок server:

export default defineConfig({
  server: {
    port: 3000
  }
})

Ваш dev-сервер будет запускаться на http://localhost:3000/.

Как подключить изображения из public-папки и из src в Vite?

  • Для public используйте путь относительно домена:
    <img src="/logo.png" />
  • Для src импортируйте файл как модуль: js import logo from './assets/logo.png' <img src={logo} />

Что делать, если горячая перезагрузка не работает в Vite-React проекте?

Обычно это связано с зависшим процессом или кэшем. Попробуйте:

  1. Остановить dev-сервер.
  2. Очистить node_modules и кэш:
    rm -rf node_modules/.vite
  3. Перезапустить сервер npm run dev.
    Если не помогает — обновите Vite и плагины.
Как использовать Next.js вместе с ReactСтрелочка вправо

Постройте личный план изучения React до уровня Middle — бесплатно!

React — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по React

Открыть базу знаний

Лучшие курсы по теме

изображение курса

React и Redux Toolkit

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

TypeScript с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Next.js - с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее

Отправить комментарий