Vite integration for the PhpSoftBox framework

Maintainers

Package info

github.com/phpsoftbox/vite

pkg:composer/phpsoftbox/vite

Statistics

Installs: 70

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-06-07 12:20 UTC

This package is auto-updated.

Last update: 2026-06-07 12:20:42 UTC


README

Минимальный адаптер Vite для генерации тегов скриптов и стилей.

Использование

$vite = new \PhpSoftBox\Vite\Vite(
    manifestPath: __DIR__ . '/public/build/manifest.json',
    hotFile: __DIR__ . '/public/hot',
    devServer: 'https://vite.domain.local',
    environment: 'dev',
    buildBase: '/build',
    ssrUrl: 'http://node:13714/render',
    ssrEntry: 'resources/js/ssr.tsx',
    ssrTimeout: 2.0,
);

echo $vite->tags('resources/js/app.tsx');

Что умеет

  • dev‑сервер: подключает @vite/client и entrypoint.
  • build‑режим: читает manifest.json, подключает JS/CSS, CSS imported chunks и modulepreload для статических imports.
  • SSR runtime: хранит endpoint SSR-сервера, SSR entrypoint и timeout.

Production manifest

В build-режиме компонент читает manifest, который генерирует Vite. Для каждого entrypoint подключается основной JS-файл, его CSS, CSS статически импортированных chunks и modulepreload для этих chunks.

echo $vite->tags('resources/js/app.tsx');

Если entrypoint импортирует общий bundle, итоговый HTML будет включать примерно такой набор тегов:

<link rel="stylesheet" href="/build/assets/app.123.css">
<link rel="stylesheet" href="/build/assets/vendor.456.css">
<link rel="modulepreload" href="/build/assets/vendor.456.js">
<script type="module" src="/build/assets/app.123.js"></script>

SSR runtime

Компонент Vite не рендерит Inertia сам. Он хранит runtime-настройки, которые приложение может передать SSR renderer-у:

if ($vite->ssrEnabled()) {
    $renderer = new HttpSsrRenderer(
        url: $vite->ssrUrl(),
        timeout: $vite->ssrTimeout(),
    );
}

Доступные методы:

  • devServerUrl() — URL Vite dev-server в dev-режиме или null;
  • isDev()true, если окружение не prod;
  • ssrEnabled()true, если задан SSR endpoint;
  • ssrUrl() — нормализованный URL SSR endpoint;
  • ssrEntry() — entrypoint SSR bundle;
  • ssrTimeout() — timeout HTTP SSR запроса.