mimmi20/mezzio-vite-laminasviewrenderer

Provides a Viewhelper to render urls for resources build with Vite

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/mimmi20/mezzio-vite-laminasviewrenderer

dev-master 2025-11-22 20:19 UTC

This package is auto-updated.

Last update: 2025-11-22 20:19:56 UTC


README

Latest Stable Version Latest Unstable Version License

Code Status

codecov Average time to resolve an issue Percentage of issues still open Mutation testing badge

Introduction

This component provides a view helper to render urls for resources build with Vite

Requirements

This library requires PHP 8.3+.

Installation

Run

composer require mimmi20/mezzio-vite-laminasviewrenderer

Prepare Vite

In your Vite config, you need to activate the manifest.

  publicDir: 'public',
  base: '/dist/',
  build: {
    // ...
    outDir: 'public/dist', // relative to the `root` folder
    manifest: true,
    // ...
    
    rollupOptions: {
      input: [
        path.resolve(__dirname, 'public/css/styles.css'),
        path.resolve(__dirname, 'public/scss/styles.scss'),
      ]
    }
  }

The required manifest file and the resorce files are created when running Vite's build command.

npx vite build

Config

This viewhelper needs a config to know where the public and the build directories are. The directories have to match the directories configured for Vite.

<?php
return [
    // ...
    'vite-url' => [
        'public-dir' => 'public',              // <-- relative to the project root
        'build-dir' => 'dist',                 // <-- relative to the public directory
        'vite-host' => 'http://localhost:8080' // <-- Host of the Vite DEV-Server or `null` if the DEV-Server is not used
    ],
    // ...
];

Usage

Now you may add a file build with Vite. It is nessesary to use the exact path, you use in the Vite config. Otherwise the file can not be found in the manifest.

    $this->headLink()->appendStylesheet($this->viteUrl()->file('public/css/styles.css'), 'screen', ['rel' => 'stylesheet']);
    $this->headLink()->appendStylesheet($this->viteUrl()->file('public/scss/styles.scss'), 'screen', ['rel' => 'stylesheet']);

License

This package is licensed using the MIT License.

Please have a look at LICENSE.md.