Полный цикл в digital

Vite Laravel

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

Установка

Перед установкой нужно убедиться, что установлен Node и менеджер пакетов npm. Проверить можно с помощью двух команд:

node -v
npm -v

В установке Laravel вы найдете package.json файл в корне структуры каталогов приложения. Файл по умолчанию package.json уже включает в себя все, что нужно для начала работы с Vite.

Установка внешних зависимостей приложения через NPM:

npm install

Настройка

Vite настраивается через vite.config.js файл в корне проекта. Можно настроить этот файл в соответствии с потребностями, а также можете установить любые другие подключаемые модули, необходимые для вашего приложения, такие как @vitejs/plugin-vue или @vitejs/plugin-react.

Плагин Laravel Vite требует, указания точек входа для файлов приложения. Это могут быть файлы JavaScript или CSS, а также предварительно обработанные языки, такие как TypeScript, JSX, TSX, Sass.

Для того, чтобы не создавать хаос у себя на сервере, все файлы, относящиеся к проекту лучше хранить в папке /resources, которая уже создана при установке Laravel. В эту папку вложена папка css, в которую и нужно складывать все файлы со стилями CSS и папка js в которую и нужно складывать все файлы со скриптами JS. Если файлы нужно разделить на группы, можно сделать вложенные папки.

Полный путь до папки со стилями CSS относительно корня папок проекта будет:

/resources/css

Полный путь до папки со скриптами JS относительно корня папок проекта будет:

/resources/js

В файле vite.config.js должны быть перечисленны все файлы которые будут подключаться в проекте:

vite.config.jsimport { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
    
export default defineConfig({
    plugins: [
        laravel([
            'resources/css/app.css',
            'resources/js/app.js',
        ]),
    ],
});

Laravel Vite и SPA

Вместо перехода по ссылкам и загрузки новой страницы, при каждом клике по ссылке происходит подгрузка некоторых данных через тот же axios во vue. И тот же vue отвечает за отображение этих данных. SPA это разделение на бэкенд и фронтенд - серверную и клиентскую часть.

SPA - single page application, переводится как одностраничное приложение. Загрузка страницы происходит один раз, а дальше - запрос-ответ. Благодаря этой схеме при первоначальной загрузке грузятся все стили и скрипты которые уже содержат шаблоны в себе, дальнейший обмен с сервером получается достаточно экономичным с точки зрения трафика, что положительно влияет на загрузку сервера и скорость получения данных.

Если вы создаете SPA, включая приложения, созданные с использованием Inertia, Vite лучше всего работает без точек входа CSS:

vite.config.jsimport { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
    
export default defineConfig({
    plugins: [
        laravel([
            'resources/js/app.js',
        ]),
    ],
});

Вместо этого вы должны импортировать свой CSS через JavaScript. Как правило, это делается в resources/js/app.js файле вашего приложения:

resources/js/app.jsimport './bootstrap';
import '../css/app.css'; 

Загрузка скриптов и стилей

С настроенными точками входа, осталось только указать их в @vite() директиве файлов Blade, которую вы добавляете в шаблон вашего приложения:

resources/views/posts/index.blade.php<!doctype html>
<head>
@vite(['resources/css/app.css', 'resources/js/app.js'])
</head>

Объединение

Для использования библиотеки в своём коде, достаточно импортировать её с применением команды import согласно стандарту ES6, в данном примере знак _ указывает на объект скрипта:

import _ from 'underscore';

Воспользуемся какими-нибудь функциями подключенной библиотеки:

import _ from "underscore";
let arr = [1, 2, 3, 4, 5]
let res = _.first(arr) + _.last(arr);
console.log(res);

Можно импортировать не все функции, а только необходимые:

import {first, last} from "underscore";
let arr = [1, 2, 3, 4, 5]
let res = first(arr) + last(arr);
console.log(res);

Если нужно запустить глобальный код модуля, например для объединения файлов без обращений к метода:

import "owl.carousel";
import "magnific-popup";
import "jquery-match-height";
import "/resources/js/lazyload/jquery.lazyloadxt.extra.js";
import "jquery.cookie";
import "/resources/js/obratnyjotschet/obratnyj-otschet.js";
import "/resources/js/default/scripts.js";

Если нужно сделать глобальную переменную уровня всей страницы, можно явно присвоить её объекту window, тогда получить значение переменной можно обратившись к window.user. Но это должно быть исключением, требующим веской причины:

import _ from "jquery";
window.jQuery = _;
window.$ = _;

Запуск

Есть два способа запустить Vite.

Вы можете запустить сервер разработки с помощью dev команды, которая используется исключительно при локальной разработке. Сервер разработки автоматически обнаружит изменения в файлах и отразит их в открытых окнах браузера, файлы отдаются по отдельности и они не скомпилированы:

npm run dev

Для запуска в режиме продакшен, нужно запускать build команду, которая создаст постоянные версии в папке public/build/assets скомпилированных файлов:

npm run build

Подробная инструкция по Vite.

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг