Vite
Vite - это современный сборщик модулей (bundler) для
JavaScript-приложений, менее кастомизируемый, чемWebpack, но гораздо более быстрый.
Создание шаблона
yarn create vite [project-name] --template [template-name]
- [project-name] - название проекта
- [template-name] - используемый шаблон
Пример
yarn create vite react-webrtc --template react
SASS
yarn add -D sass
Плагины
Установка
yarn add -D @vitejs/plugin-react
Использование
// vite.config.js
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
export default defineConfig({
plugins: [react()]
})
Пользовательские плагины, которые показались мне интересными
- vite-plugin-pwa
- vite-plugin-node
- vite-plugin-imagemin
- vite-plugin-electron-renderer
- vite-plugin-wasm-pack
Статические файлы
Ссылки на файлы, находящиеся в директории public, должны начинаться с /. Предположим, что мы сохраняем аватары пользователей в директории public/uploads/avatars. Названием соответствующего файла является идентификатор пользователя + расширение файла. Тогда ссылка на файл 1.png будет следующей:
<img src='/uploads/avatars/1.png' alt='User Name' />
Деплой статического сайта
Сборка и локальное тестирование приложения
yarn build
yarn preview
GitHub Pages
Предположим, что мы деплоим на https://[username].github.io/. В корневой директории проекта создаем файл deploy.sh следующего содержания:
#!/usr/bin/env sh
# прерываем выполнение при наличии ошибок
set -e
# сборка
npm run build
# переходим в директорию со сборкой
cd dist
# если используем кастомный домен
# echo 'www.example.com' > CNAME
git init
git add -A
git commit -m 'deploy'
git push -f git@github.com:[username]/[username].github.io.git main
cd -
Netlify
Создаем новый проект из GitHub со следующими настройками:
- Build Command:
vite buildилиnpm run build - Publish directory:
dist
Heroku
Авторизуемся в Heroku с помощью heroku login. В корневой директории проекта создаем файл static.json следующего содержания:
{
"root": "./dist"
}
Выполняем серию команд:
# изменение версии
$ git init
$ git add .
$ git commit -m "My site ready for deployment."
# создаем новое приложение с указанным названием
$ heroku apps:create example
# устанавливаем buildpack для статических сайтов
$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-static.git
# публикуем сайт
$ git push heroku main
# открываем браузер
$ heroku open
Переменные среды окружения и режимы
Vite загружает переменные среды окружения в объект import.meta.env из файлов .env, env.local, env.[mode] и др. Открытыми являются переменные, начинающиеся с VITE_, например:
PASSWORD=qwerty
VITE_SOME_KEY=some-public-value
В данном случае в клиентский код попадет только VITE_SOME_KEY.
Предопределенные переменные:
import.meta.env.MODE: 'development' | 'production'- режим, в котором запущено приложение;import.meta.BASE_URL: string- основной путь приложения (определяется настройкойbase);import.meta.env.PROD: boolean;import.meta.env.DEV: boolean.
Настройки
Пример синонимов путей для React-приложения
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'),
}
}
})