Vite — это современный сборщик и инструмент для разработки веб-приложений, созданный Эваном Ю, автором Vue.js. Его ключевая цель — ускорение процесса разработки и упрощение сборки проектов. Основные принципы работы Vite:
Vite интегрируется с Vue.js максимально просто. Для создания нового проекта используется команда:
npm create vite@latest my-vue-app
Далее выбирается шаблон vue или vue-ts для
TypeScript. После установки выполняются стандартные команды:
cd my-vue-app
npm install
npm run dev
Сервер разработки запускается по умолчанию на
http://localhost:5173, и любые изменения в файлах
компонентов отражаются мгновенно благодаря HMR.
Типичная структура Vue-проекта с использованием Vite выглядит следующим образом:
my-vue-app/
├─ index.html
├─ package.json
├─ vite.config.js
├─ src/
│ ├─ main.js
│ ├─ App.vue
│ ├─ components/
│ │ └─ ExampleComponent.vue
│ └─ assets/
└─ public/
Основные настройки Vite для интеграции с Vue заключаются в подключении официального плагина:
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
'@': '/src'
}
},
server: {
port: 3000,
open: true
},
build: {
outDir: 'dist',
sourcemap: true
}
});
Важные моменты конфигурации:
plugins: [vue()] — подключение плагина для работы с
.vue файлами.alias — упрощает импорт компонентов и модулей,
используя @ вместо длинного пути.server.port и server.open — настраивают
локальный сервер разработки.build.outDir — каталог, в который производится сборка
проекта для продакшена.Vite полностью поддерживает одностраничные компоненты Vue
(.vue). Пример простого компонента:
<template>
<div class="example">
<h1>{{ title }}</h1>
<button @click="increment">Нажми меня</button>
<p>Счётчик: {{ count }}</p>
</div>
</template>
<script setup>
import { ref } from 'vue';
const title = 'Пример компонента на Vite';
const count = ref(0);
function increment() {
count.value++;
}
</script>
<style scoped>
.example {
font-family: Arial, sans-serif;
text-align: center;
}
button {
margin-top: 10px;
padding: 5px 15px;
cursor: pointer;
}
</style>
Особенности работы:
script setup обеспечивает компактный
синтаксис и прямой доступ к переменным.ref и
reactive полностью сохраняется.scoped предотвращают конфликт с
глобальными стилями.Одним из главных преимуществ Vite является HMR. Изменение любого
.vue компонента автоматически отражается в браузере без
полной перезагрузки. Это достигается благодаря модульной архитектуре и
поддержке нативных ES-модулей.
// пример импорта компонента
import ExampleComponent from './components/ExampleComponent.vue';
При сохранении файла ExampleComponent.vue изменения
применяются мгновенно.
Vite использует Rollup для продакшн-сборки. Важные параметры оптимизации:
Пример настройки продакшн-сборки:
build: {
target: 'es2015',
minify: 'terser',
rollupOptions: {
output: {
manualChunks: {
vue: ['vue']
}
}
}
}
Vite поддерживает множество плагинов, включая плагины для Vue,
TypeScript, PostCSS, и даже сторонние решения для обработки изображений
и файлов. Подключение плагина выполняется через массив
plugins в vite.config.js:
import vue from '@vitejs/plugin-vue';
import legacy from '@vitejs/plugin-legacy';
export default defineConfig({
plugins: [
vue(),
legacy({ targets: ['defaults', 'not IE 11'] })
]
});
Плагин @vitejs/plugin-legacy позволяет поддерживать
старые браузеры, автоматически добавляя необходимые полифиллы.
Vite полностью совместим с TypeScript. Для использования TypeScript
достаточно создать проект с шаблоном vue-ts:
npm create vite@latest my-vue-ts-app
Основные отличия в проекте:
.ts или .vue с
<script lang="ts">.Vite легко интегрируется с:
Эта гибкость делает Vite мощным инструментом для разработки современных Vue-приложений.
Ключевые преимущества Vite перед традиционными сборщиками, такими как Webpack:
Vite стал стандартом для современных Vue-проектов, обеспечивая высокую скорость разработки и лёгкость настройки, что делает его оптимальным выбором для приложений любого масштаба.