Vite — современный сборщик проектов, обеспечивающий быструю разработку и мгновенную перезагрузку модулей благодаря использованию нативных ES-модулей в браузере. При работе с Vue.js Vite предоставляет оптимизированную интеграцию, включая поддержку Vue Single File Components (SFC), горячую замену модулей (HMR) и возможности для сборки на продакшн.
Для начала необходимо создать новый проект с использованием Vite и шаблона Vue. Самый простой способ — через пакетный менеджер npm или Yarn:
npm create vite@latest my-vue-app
# или
yarn create vite my-vue-app
При выборе шаблона нужно указать Vue (или Vue + TypeScript при необходимости). После создания проекта выполняется установка зависимостей:
cd my-vue-app
npm install
После создания проекта структура выглядит следующим образом:
my-vue-app/
├─ index.html
├─ package.json
├─ vite.config.js
├─ public/
├─ src/
│ ├─ main.js
│ ├─ App.vue
│ └─ components/
└─ node_modules/
Файл vite.config.js отвечает за настройку сборки и
плагинов. Для интеграции Vue необходимо подключить официальный
плагин:
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
server: {
port: 3000,
open: true,
},
resolve: {
alias: {
'@': '/src'
}
}
})
Ключевые моменты конфигурации:
plugins: [vue()] — подключение поддержки SFC.server.port — порт для локального сервера
разработки.server.open — автоматическое открытие браузера при
запуске.resolve.alias — сокращения путей для удобства импорта
модулей.Одним из главных преимуществ Vite является мгновенная перезагрузка
модулей. Для Vue.js это особенно полезно, так как изменения в
.vue файлах отражаются в браузере без полной перезагрузки
страницы, сохраняя состояние компонентов.
HMR включен по умолчанию, но его поведение можно настраивать через
объект server.hmr:
server: {
hmr: {
overlay: true, // показывает ошибки на экране
}
}
Если проект создается с TypeScript, Vite автоматически подключает
поддержку .ts и .vue файлов с типизацией. В
конфигурации можно добавить строгие проверки типов:
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
export default defineConfig({
plugins: [
vue({
reactivityTransform: true
}),
vueJsx()
],
})
Опция reactivityTransform позволяет использовать
улучшенные реактивные синтаксисы без ref.
Vite оптимизирует зависимости при старте проекта, используя esbuild. Для сложных библиотек можно явно указать их предобработку:
optimizeDeps: {
include: ['lodash-es'],
exclude: ['some-large-lib']
}
include — список пакетов, которые необходимо
предварительно собрать.exclude — пакеты, которые не нужно оптимизировать.Использование алиасов ускоряет разработку и делает импорт компонентов более удобным:
import MyComponent from '@/components/MyComponent.vue'
Алиас @ указывает на папку src, что
предотвращает длинные относительные пути типа
../. ./. ./.
Vite поддерживает CSS, SCSS, Less и PostCSS. Для SCSS достаточно установить пакет:
npm install -D sass
Импорт в .vue файле:
<style lang="scss">
$primary-color: #42b983;
.button {
background-color: $primary-color;
}
</style>
Также можно настроить глобальные переменные и миксины через
vite.config.js:
css: {
preprocessorOptions: {
scss: {
additionalData: `@import "@/styles/variables.scss";`
}
}
}
Для разработки с удалённым бэкендом полезно настроить прокси:
server: {
proxy: {
'/api': {
target: 'http://localhost:5000',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, '')
}
}
}
Это позволяет отправлять запросы на /api/users к
локальному серверу без проблем с CORS.
Команда сборки npm run build генерирует оптимизированные
файлы в папке dist. Vite автоматически минифицирует код,
разделяет чанки и использует tree-shaking. Конфигурация сборки может
включать:
build: {
outDir: 'dist',
sourcemap: true,
rollupOptions: {
output: {
manualChunks: {
vue: ['vue', 'vue-router']
}
}
}
}
outDir — папка для сборки.sourcemap — генерация исходных карт для отладки.manualChunks — разбиение библиотек на отдельные чанки
для кэширования.Настройка Vite для Vue.js обеспечивает гибкую и быструю разработку, сокращая время запуска приложения и упрощая интеграцию современных инструментов фронтенда. В сочетании с Single File Components, HMR и расширенной конфигурацией сборки, Vite создаёт эффективную среду для построения производительных Vue-приложений.