yakovlev-vladimir/laravel-mix-twig-extension

dev-master / 1.0.x-dev 2023-01-10 01:41 UTC

This package is auto-updated.

Last update: 2024-05-10 04:35:26 UTC


README

GitHub stars GitHub forks Build Status Donations Badge

The Laravel mix version task appends a unique hash to filename, allowing for cache-busting. For example, the generated file name will look something like: all-16d570a7.css.

In Laravel, you can use in your views the mix() function to load the appropriately hashed asset:

<link rel="stylesheet" href="{{ mix("css/all.css") }}">

This twig extension is an adaptation of this mix() function.

Requirements

You need PHP >= 8.0 to use the library, but the latest stable version of PHP is recommended.

Install

Install using Composer:

composer require yakovlev-vladimir/laravel-mix-twig-extension:dev-master

This will edit (or create) your composer.json file and automatically choose the most recent version.

Documentation [TODO]

Register the extension

use Yakovlev\Twig\Extension\MixExtension;

$mix = new MixExtension(
    $publicDir,     // the absolute public directory
    $manifestName   // the manifest filename (default value is 'mix-manifest.json')
);
$twig->addExtension($mix);

Register the extension as a Symfony Service

Refer to the original repo.

Using the Extension

<link rel="stylesheet" href="{{ mix('css/all.css') }}">
<script src="{{ mix('js/all.js') }}"></script>

You can surround with the asset twig extension to make your application more portable:

<link rel="stylesheet" href="{{ asset(Mix('css/all.css')) }}">
<script src="{{ asset(Mix('js/all.js')) }}"></script>

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details