templates/vite-templates/README.md
2026-04-12 21:03:18 +03:00

272 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🚀 Полное руководство
## 📋 Подготовка к установке
### Системные требования
- **Node.js** 16.0+
- **npm** 7.0+ или **yarn** 1.22+
- **Git** (для клонирования)
### Проверка версий
```bash
node --version # v16.0+
npm --version # 7.0+
git --version # любая актуальная
```
## 🚀 Возможности
- **⚡ Vite + Vituum** - Молниеносная сборка и HMR
- **🎨 Шаблонизаторы** - Поддержка Pug и Twig
- **💅 SCSS** - Современный препроцессор CSS
- **🔍 Линтинг** - ESLint + Prettier + Stylelint
- **📱 Адаптивность** - Mobile-first подход
- **🖼️ Оптимизация изображений** - Автоматическое сжатие
- **🔒 HTTPS** - Безопасная разработка
- **📊 JSON данные** - Динамическая загрузка контента
- **🎯 Современный JS** - ES6+ модули и функции
## 📦 Установка
```bash
# Клонирование репозитория
git clone <repository-url>
cd modern-frontend-builder
# Установка зависимостей
npm install
```
## 🛠️ Использование
```bash
# Запуск сервера разработки
npm run dev
# Сборка для продакшена
npm run build
# Предварительный просмотр сборки
npm run preview
# Линтинг и форматирование
npm run lint # ESLint
npm run format # Prettier
npm run lint:style # Stylelint
# HTTPS сервер
npm run serve
```
## 📁 Структура проекта
```
src/
├── pages/ # Страницы (HTML/PUG/TWIG)
├── layouts/ # Макеты шаблонов
├── components/ # Переиспользуемые компоненты
├── styles/ # SCSS стили
├── js/ # JavaScript модули
├── images/ # Изображения
├── fonts/ # Шрифты
├── data/ # JSON данные
└── public/ # Статические файлы
```
## 🎨 Работа с шаблонами
### Pug
```pug
extends ../layouts/base
block content
.hero
h1= data.content.hero.title
p= data.content.hero.subtitle
```
### Twig
```twig
{% extends 'layouts/main.twig' %}
{% block content %}
<div class="hero">
<h1>{{ data.content.hero.title }}</h1>
<p>{{ data.content.hero.subtitle }}</p>
</div>
{% endblock %}
```
## 💅 Система стилей
- **vars** - Централизованные переменные
- **Mixins** - Переиспользуемые стили
- **Components** - Модульные компоненты
- **Utilities** - Вспомогательные классы
- **BEM методология** - Структурированное именование
## 🖼️ Оптимизация изображений
Автоматическая оптимизация:
- **JPEG** - mozjpeg сжатие
- **PNG** - pngquant оптимизация
- **SVG** - SVGO минификация
- **WebP** - Современный формат
## 📊 Работа с данными
JSON файлы автоматически доступны в шаблонах:
```javascript
// В JavaScript
import { loadData } from './utils/dataLoader.js';
const data = await loadData('/src/data/content.json');
```
## 🔧 Настройка
### Vite конфигурация
Основные настройки в `vite.config.js`:
- Алиасы путей
- Плагины оптимизации
- Настройки сборки
- HTTPS сертификаты
### Линтинг
- **ESLint** - JavaScript код
- **Stylelint** - CSS/SCSS стили
- **Prettier** - Форматирование
## 🚀 Развертывание
### Сборка для продакшена
```bash
npm run build
```
Результат будет в папке `dist/` - готов для загрузки на хостинг.
### Настройка для хостинга
Большинство хостингов поддерживают статические файлы из папки `dist/`.
Для **Netlify/Vercel**:
- Подключите Git репозиторий
- Команда сборки: `npm run build`
- Папка публикации: `dist`
Для **GitHub Pages**:
```bash
# Установите gh-pages
npm install --save-dev gh-pages
# Добавьте в package.json
"scripts": {
"deploy": "npm run build && gh-pages -d dist"
}
# Деплой
npm run deploy
```
## 🔄 Рабочий процесс
### Ежедневная разработка
1. **Запуск:** `npm run dev`
2. **Разработка:** Редактирование файлов в `src/`
3. **Проверка:** `npm run lint`
4. **Коммит:** Сохранение изменений в Git
### Перед релизом
1. **Тестирование:** `npm run build && npm run preview`
2. **Проверка качества:**
```bash
npm run lint
npm run format
npm run lint:style
```
3. **Сборка:** `npm run build`
4. **Деплой:** Загрузка `dist/` на хостинг
## 📚 Дополнительные возможности
### Добавление новых шаблонизаторов
В `vite.config.js` можно добавить поддержку других шаблонов:
```javascript
import handlebars from '@vituum/vite-plugin-handlebars';
// В plugins
handlebars({
root: './src'
});
```
### Интеграция с CMS
Для подключения к Headless CMS:
```javascript
// src/js/utils/cms.js
export const fetchContent = async endpoint => {
const response = await fetch(`https://api.your-cms.com/${endpoint}`);
return response.json();
};
```
### Добавление PWA
```bash
npm install --save-dev vite-plugin-pwa
# В vite.config.js
import { VitePWA } from 'vite-plugin-pwa';
// В plugins
VitePWA({
registerType: 'autoUpdate',
workbox: {
globPatterns: ['**/*.{js,css,html,ico,png,svg}']
}
})
```
### Анализ бандла
```bash
npm install --save-dev rollup-plugin-visualizer
# Добавить в vite.config.js
import { visualizer } from 'rollup-plugin-visualizer';
// В plugins
visualizer({
filename: 'dist/stats.html',
open: true
})
```
## 📖 Полезные ссылки
- **Vite документация:** https://vitejs.dev/
- **Vituum документация:** https://vituum.dev/
- **Pug документация:** https://pugjs.org/
- **Twig документация:** https://twig.symfony.com/
- **SCSS документация:** https://sass-lang.com/
- **ESLint правила:** https://eslint.org/docs/rules/
- **Prettier опции:** https://prettier.io/docs/en/options.html