ricardosierra / minify
A package for minifying styles and javascript for laravel 5
Fund package maintenance!
ricasolucoes
ricasolucoes.com.br/open-source/support-us
Requires
- php: >=5.4.0
- illuminate/filesystem: ^7.0 || ^8.0
- illuminate/support: ^7.0 || ^8.0
- natxet/cssmin: 3.*
- tedivm/jshrink: ~1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- orchestra/testbench: ^5.0|^6.0
- phpro/grumphp: >=1.3
- phpunit/phpunit: ^9.3
- psalm/plugin-laravel: ^1.5
- vimeo/psalm: ^4.0
Replaces
This package is auto-updated.
Last update: 2024-12-16 05:07:11 UTC
README
With this package you can minify your existing stylessheet and javascript files for laravel 5. This process can be a little tough, this package simplies this process and automates it.
For Larvel 4 please use ceesvanegmond/minify
Installation
Begin by installing this package through Composer.
{ "require": { "ricardosierra/minify": "1.0.*" } }
Laravel installation
Then register the service provider and Facade by opening config/app.php
RicardoSierra\Minify\MinifyServiceProvider::class,
'Minify' => RicardoSierra\Minify\Facades\MinifyFacade::class,
Publish the config file:
php artisan vendor:publish
When you've added the MinifyServiceProvider
an extra Minify
facade is available.
You can use this Facade anywhere in your application
Stylesheet
// app/views/hello.blade.php <html> <head> ... {!! Minify::stylesheet('/css/main.css') !!} // or by passing multiple files {!! Minify::stylesheet(array('/css/main.css', '/css/bootstrap.css')) !!} // add custom attributes {!! Minify::stylesheet(array('/css/main.css', '/css/bootstrap.css'), array('foo' => 'bar')) !!} // add full uri of the resource {!! Minify::stylesheet(array('/css/main.css', '/css/bootstrap.css'))->withFullUrl() !!} {!! Minify::stylesheet(array('//fonts.googleapis.com/css?family=Roboto')) !!} // minify and combine all stylesheet files in given folder {!! Minify::stylesheetDir('/css/') !!} // add custom attributes to minify and combine all stylesheet files in given folder {!! Minify::stylesheetDir('/css/', array('foo' => 'bar', 'defer' => true)) !!} // minify and combine all stylesheet files in given folder with full uri {!! Minify::stylesheetDir('/css/')->withFullUrl() !!} </head> ... </html>
Javascript
// app/views/hello.blade.php <html> <body> ... </body> {!! Minify::javascript('/js/jquery.js') !!} // or by passing multiple files {!! Minify::javascript(array('/js/jquery.js', '/js/jquery-ui.js')) !!} // add custom attributes {!! Minify::javascript(array('/js/jquery.js', '/js/jquery-ui.js'), array('bar' => 'baz')) !!} // add full uri of the resource {!! Minify::javascript(array('/js/jquery.js', '/js/jquery-ui.js'))->withFullUrl() !!} {!! Minify::javascript(array('//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js')) !!} // minify and combine all javascript files in given folder {!! Minify::javascriptDir('/js/') !!} // add custom attributes to minify and combine all javascript files in given folder {!! Minify::javascriptDir('/js/', array('bar' => 'baz', 'async' => true)) !!} // minify and combine all javascript files in given folder with full uri {!! Minify::javascriptDir('/js/')->withFullUrl() !!} </html>
Config
<?php return array( /* |-------------------------------------------------------------------------- | Sort Direction |-------------------------------------------------------------------------- | | You can set the sort direction (ascending/descending) when | minifying full directories. | */ 'reverse_sort' => true, /* |-------------------------------------------------------------------------- | App environments to not minify |-------------------------------------------------------------------------- | | These environments will not be minified and all individual files are | returned | */ 'ignore_environments' => array( 'local', ), /* |-------------------------------------------------------------------------- | CSS build path |-------------------------------------------------------------------------- | | Minify is an extension that can minify your css files into one build file. | The css_builds_path property is the location where the builded files are | stored. This is relative to your public path. Notice the trailing slash. | Note that this directory must be writeable. | */ 'css_build_path' => '/css/builds/', 'css_url_path' => '/css/builds/', /* |-------------------------------------------------------------------------- | JS build path |-------------------------------------------------------------------------- | | Minify is an extension that can minify your js files into one build file. | The js_build_path property is the location where the builded files are | stored. This is relative to your public path. Notice the trailing slash. | Note that this directory must be writeable. | */ 'js_build_path' => '/js/builds/', 'js_url_path' => '/js/builds/', /* |-------------------------------------------------------------------------- | Hash modification |-------------------------------------------------------------------------- | | You can disable usage of modification time (mtime) for hash build and | add additional salt (exp. commit hash) for hash build | */ 'disable_mtime' => false, 'hash_salt' => '', /* |-------------------------------------------------------------------------- | Base URL |-------------------------------------------------------------------------- | | You can set the base URL for the links generated with the configuration | value. By default if empty HTTP_HOST would be used. | */ 'base_url' => '' );