Руководство по использованию Vite в React

Когда начинаете новый проект React, выбор правильных инструментов может сильно повлиять на рабочий процесс. Хотя такие инструменты, как Webpack, широко используются уже много лет, новые варианты, такие как Vite, предлагают более быстрые и эффективные альтернативы.

Введение

Vite, разработанный Evan You (создателем Vue.js), создан для обеспечения молниеносной среды разработки. Для этого он обслуживает файлы с помощью нативных модулей ES и использует оптимизированный сервер разработки. Всё это позволяет ускорить запуск сервера и сделать разработку более отзывчивой.

React, одна из популярных библиотек для создания пользовательских интерфейсов, легко работает с Vite. Его компонентная архитектура идеально подходит для разработки динамических одностраничных приложений (SPA).

В статье мы рассмотрим, как создать проект React с помощью Vite, изучим структуру проекта, покажем, как работать с ресурсами и развернуть приложение. В конце мы рассмотрим, как Vite может улучшить опыт разработки React.

Что такое Vite

Этот современный инструмент сборки, созданный автором Vue.js Evan You, ориентирован на скорость и эффективность — особенно в связке с React. Он выделяется быстрой и оптимизированной разработкой, минимизируя задержки при запуске.

Ключевые особенности

Сравнение с Webpack

Несмотря на то, что Webpack является популярным выбором уже много лет, он требует сложных настроек и может быть медленнее в процессе разработки из-за процесса сборки. В отличие от него, Vite упрощает процесс настройки и пропускает процесс сборки во время разработки, что приводит к ускорению времени запуска сервера и HMR. Сборки Vite для продакшена также оптимизированы, как и Webpack, но имеют более простую конфигурацию.

Преимущества использования с React

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

Настройка среды

Прежде чем приступить к работе с Vite в связке с React, необходимо убедиться, что в системе установлены Node.js и npm. Если они не установлены, выполните следующие шаги, чтобы приступить к работе.

Установка Node.js и npm

Чтобы установить Node.js и npm, посетите официальный сайт Node.js и загрузите последнюю стабильную версию. После установки можно проверить установку, выполнив следующие команды в терминале:

node -v
npm -v

Эти команды должны отобразить установленные версии Node.js и npm, подтверждая, что они правильно настроены.

Создание проекта

Теперь, когда Node.js и npm готовы, можно создать новый проект React с Vite. Vite предоставляет простую команду для быстрой настройки нового проекта. Откройте терминал и выполните следующие команды:

npm create vite@latest my-react-app --template react
cd my-react-app
npm install

Запуск разработки

После того как проект настроен и зависимости установлены, можно запустить сервер разработки. Сервер очень быстрый, и увидите, как быстро он запускается:

npm run  dev

Выполнение этой команды запустит сервер разработки и откроет созданное React приложение в веб-браузере по умолчанию. Приложение будет автоматически перезагружаться по мере внесения изменений в код благодаря быстрой функции HMR.

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

После инициализации проекта React с помощью Vite создаётся чистая и минимальная структура проекта. Эта структура призвана помочь быстро начать работу без лишних файлов и сложных конфигураций. Давайте разберём ключевые файлы и папки, чтобы разобраться в настройках.

my-react-app
├── node_modules
├── src
├── .eslintrc.cjs
├── index.html
├── README.md
├── package.json
└── vite.config.js

Ключевые файлы и папки

Такая структура проекта обеспечивает гибкость и простоту, позволяя легко расширять приложение по мере его разработки.

Модификация App.jsx

Давайте изменим стандартный компонент App.jsx, создав простой React компонент, отображающий список элементов:

import React from 'react';

function App() {
const items = ['Item 1', 'Item 2', 'Item 3'];

return (
<div>
<h1>Simple List with Vite and React</h1>
<ul>
{items.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
</div>
);
}

export default App;

В этом примере:

Работа с ресурсами и HMR

Vite упрощает процесс работы с ресурсами, стилями и предлагает быструю обратную связь во время разработки благодаря функции HMR. Давайте разберёмся, как использовать эти возможности в вашем проекте.

Импорт ресурсов

Vite позволяет с лёгкостью импортировать такие ресурсы, как изображения или CSS-файлы, непосредственно в компоненты React, эффективно связывая их во время сборки.

import React from 'react';
import logo from './assets/logo.png'; // Импорт изображения

function App() {
return (
<div>
<img src={logo} alt="App Logo" />
<h1>Welcome to Vite React App!</h1>
</div>
);
}

export default App;

В данном случае изображение подхватывается автоматически — без ручной настройки. Во время сборки оно будет оптимизировано, а в процессе разработки — загружаться напрямую, обеспечивая быструю перезагрузку.

import React from 'react';
import './App.css'; // импорт css файла

function App() {
return (
<div className="app-container">
<h1>Welcome to Vite React App!</h1>
</div>
);
}

export default App;

Как работает HMR

Одна из отличительных особенностей Vite — HMR. HMR позволяет мгновенно увидеть изменения в приложении без полной перезагрузки страницы. При изменении файла обновляется только изменённый модуль, сохраняя состояние приложения.

Например, при обновлении компонента React:

import React from 'react';

function App() {
return (
<div>
<h1>Welcome to the updated Vite React App!</h1> {/* Изменение текста */}
</div>
);
}

export default App;

После сохранения файла HMR немедленно обновляет пользовательский интерфейс без полной перезагрузки страницы. Это значительно ускоряет процесс разработки, особенно когда необходимо работать над компонентами пользовательского интерфейса или настраивать стили.

Решение проблем

Несмотря на то, что Vite в целом обеспечивает плавную разработку, всё же можно столкнуться с несколькими распространёнными проблемами при использовании его с React. Вот некоторые из этих проблем и способы их устранения, а также советы по оптимизации производительности и времени сборки.

Ошибка: "Failed to resolve module"

Это распространённая проблема, возникающая, когда Vite не может определить модуль, который пытается импортировать, особенно если речь идёт о библиотеках сторонних разработчиков или неправильных путях.

Решение:

Ошибка: "React Refresh failed"

Vite использует React Fast Refresh, позволяющий выполнять HMR. Иногда он может не сработать, если используется не поддерживаемая версия React или есть проблемы с конфигурацией.

Решение:

После сборки приложения не загружаются ресурсы

Если после сборки приложения такие ресурсы, как изображения, шрифты или другие статические файлы, не загружаются должным образом, это часто связано с неправильными путями к ним.

Решение:

Следуя этим шагам по устранению неполадок, вы сможете решить распространённые проблемы и обеспечить бесперебойную работу вашего проекта Vite + React.

FAQ

Что лучше выбрать для проекта — Vite или Webpack?

Если вам важна высокая скорость старта и перезагрузки, особенно в процессе разработки, Vite будет предпочтительнее. Webpack остаётся мощным инструментом для сложных сборок, но требует больше настроек.

Подходит ли Vite для больших проектов?

Да, Vite отлично масштабируется. Он использует Rollup под капотом для продакшена, что позволяет настраивать сложные сборки и разделение кода.

Можно ли использовать Vite с TypeScript?

Да. При создании проекта достаточно выбрать шаблон react-ts, и Vite автоматически сконфигурирует всё необходимое для поддержки TypeScript.

Нужно ли устанавливать Babel с Vite?

Не обязательно. Vite использует esbuild, который быстрее Babel. Однако вы можете добавить Babel при необходимости — например, для поддержки старых браузеров или специфических плагинов.

Какой сервер запускает Vite во время разработки?

Vite запускает собственный dev-сервер на базе Node.js с поддержкой HMR и ES-модулей. По умолчанию он доступен по адресу http://localhost:5173/.

Заключение

В статье мы рассмотрели настройку проекта React с Vite, изучили структуру проекта, импортированные ресурсы и стили, а также рассказали о том, как HMR улучшает разработку. Также рассмотрели общие советы по устранению неполадок и оптимизации производительности сборки.

Благодаря скорости и простоте он отлично подойдёт как для небольших, так и для масштабных проектов. Изучая его дальше, обратите внимание на расширенные возможности: подключение плагинов, кастомизация конфигураций и интеграции.

Комментарии


Дополнительные материалы

Предыдущая Статья

Стандарт автозагрузки PSR-4 в PHP

Следующая Статья

npm vs. yarn: Ключевые различия и сравнение