Skip to content
This repository has been archived by the owner on Mar 19, 2023. It is now read-only.

Latest commit

 

History

History
172 lines (136 loc) · 5.01 KB

README.md

File metadata and controls

172 lines (136 loc) · 5.01 KB

Minify

For laravel 5 please use devfactory/minify

Build Status Latest Stable Version Total Downloads License

With this package you can minify your existing stylessheet and javascript files. This process can be a little tough, this package simplies this process and automates it.

Installation

Begin by installing this package through Composer.

{
    "require": {
    	"ceesvanegmond/minify": "2.0.*"
	}
}

Laravel installation

// app/config/app.php

'providers' => [
    '...',
    'CeesVanEgmond\Minify\MinifyServiceProvider',
];

Publish the config file:

php artisan config:publish ceesvanegmond/minify

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 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 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(

    /*
    |--------------------------------------------------------------------------
    | App environments to not minify
    |--------------------------------------------------------------------------
    |
    | These environments will not be minified
    |
    */

    'ignore_environments' => array(
	     'local',
    ),

    /*
    |--------------------------------------------------------------------------
    | CSS path and CSS build path
    |--------------------------------------------------------------------------
    |
    | Minify is an extension that can minify your css files into one build file.
    | The css_path property is the location where your CSS files are located
    | The css_builds_path property is the location where the builded files are
    | stored.  This is relative to the css_path property.
    |
    */

    'css_build_path' => '/css/builds/',

    /*
    |--------------------------------------------------------------------------
    | JS path and JS build path
    |--------------------------------------------------------------------------
    |
    | Minify is an extension that can minify your JS files into one build file.
    | The JS_path property is the location where your JS files are located
    | The JS_builds_path property is the location where the builded files are
    | stored.  This is relative to the css_path property.
    |
    */

    'js_build_path' => '/js/builds/',

);

Without Laravel

<?php
$config = array(
	'ignore_environments' => 'local',
	'js_build_path' => '/js/builds/',
	'css_builds_path' => '/css/builds',
)
$minify = new CeesVanEgmond\Minify\Providers\Javascript($public_path);
$minify->add($file)

if (in_array($environment, $config['ignore_environments']))
{
    return $provider->tags();
}

if ( ! $minify->make($config['css_build_path'] ) {
	$filename = $provider->tag($config['css_build_path'] . $provider->getFilename());
}

$provider->minify();

$filename = $provider->tag($config['css_build_path'] . $provider->getFilename());