2017 © Pedro Peláez
 

library laravel-packer

A package for pack css and javascript files

image

eusonlito/laravel-packer

A package for pack css and javascript files

  • Friday, January 26, 2018
  • by eusonlito
  • Repository
  • 7 Watchers
  • 33 Stars
  • 6,415 Installations
  • JavaScript
  • 2 Dependents
  • 0 Suggesters
  • 3 Forks
  • 0 Open issues
  • 23 Versions
  • 3 % Grown

The README.md

Laravel >= 5 Packer

Build Status Latest Stable Version Total Downloads License, (*1)

Inspired by: https://github.com/ceesvanegmond/minify, (*2)

With this package you can pack and minify your existing css and javascript files. This process can be a little tough, this package simplies this process and automates it., (*3)

Also, you can resize/crop images to adapt thumbnails into your layouts., (*4)

If you want a Laravel <= 4.2 compatible version, please use v4.2 branch., (*5)

Installation

Begin by installing this package through Composer., (*6)

{
    "require": {
        "eusonlito/laravel-packer": "master-dev"
    }
}

Laravel installation


// config/app.php 'providers' => [ '...', 'Eusonlito\LaravelPacker\PackerServiceProvider', ]; 'aliases' => [ '...', 'Packer' => 'Eusonlito\LaravelPacker\Facade', ];

Publish the config file:, (*7)

php artisan vendor:publish --provider="Eusonlito\LaravelPacker\PackerServiceProvider"

Now you have a Packer facade available., (*8)

CSS

// resources/views/hello.blade.php

<html>
    <head>
        // Pack a simple file
        {!! Packer::css('/css/main.css', '/storage/cache/css/main.css') !!}

        // Pack a simple file using cache_folder option as storage folder to packed file
        {!! Packer::css('/css/main.css', 'css/main.css') !!}

        // Packing multiple files
        {!! Packer::css(['/css/main.css', '/css/bootstrap.css'], '/storage/cache/css/styles.css') !!}

        // Packing multiple files using cache_folder option as storage folder to packed file
        {!! Packer::css(['/css/main.css', '/css/bootstrap.css'], 'css/styles.css') !!}

        // Packing multiple files with autonaming based
        {!! Packer::css(['/css/main.css', '/css/bootstrap.css'], '/storage/cache/css/') !!}

        // pack and combine all css files in given folder
        {!! Packer::cssDir('/css/', '/storage/cache/css/all.css') !!}

        // pack and combine all css files in given folder using cache_folder option as storage folder to packed file
        {!! Packer::cssDir('/css/', 'css/all.css') !!}

        // Packing multiple folders
        {!! Packer::cssDir(['/css/', '/theme/'], '/storage/cache/css/all.css') !!}

        // Packing multiple folders with recursive search
        {!! Packer::cssDir(['/css/', '/theme/'], '/storage/cache/css/all.css', true) !!}

        // Packing multiple folders with recursive search and autonaming
        {!! Packer::cssDir(['/css/', '/theme/'], '/storage/cache/css/', true) !!}

        // Packing multiple folders with recursive search and autonaming using cache_folder option as storage folder to packed file
        {!! Packer::cssDir(['/css/', '/theme/'], 'css/', true) !!}
    </head>
</html>

CSS url() values will be converted to absolute path to avoid file references problems., (*9)

Javascript

// resources/views/hello.blade.php

<html>
    <body>
    ...
        // Pack a simple file
        {!! Packer::js('/js/main.js', '/storage/cache/js/main.js') !!}

        // Pack a simple file using cache_folder option as storage folder to packed file
        {!! Packer::js('/js/main.js', 'js/main.js') !!}

        // Packing multiple files
        {!! Packer::js(['/js/main.js', '/js/bootstrap.js'], '/storage/cache/js/styles.js') !!}

        // Packing multiple files using cache_folder option as storage folder to packed file
        {!! Packer::js(['/js/main.js', '/js/bootstrap.js'], 'js/styles.js') !!}

        // Packing multiple files with autonaming based
        {!! Packer::js(['/js/main.js', '/js/bootstrap.js'], '/storage/cache/js/') !!}

        // pack and combine all js files in given folder
        {!! Packer::jsDir('/js/', '/storage/cache/js/all.js') !!}

        // pack and combine all js files in given folder using cache_folder option as storage folder to packed file
        {!! Packer::jsDir('/js/', 'js/all.js') !!}

        // Packing multiple folders
        {!! Packer::jsDir(['/js/', '/theme/'], '/storage/cache/js/all.js') !!}

        // Packing multiple folders with recursive search
        {!! Packer::jsDir(['/js/', '/theme/'], '/storage/cache/js/all.js', true) !!}

        // Packing multiple folders with recursive search and autonaming
        {!! Packer::jsDir(['/js/', '/theme/'], '/storage/cache/js/', true) !!}

        // Packing multiple folders with recursive search and autonaming using cache_folder option as storage folder to packed file
        {!! Packer::jsDir(['/js/', '/theme/'], 'js/', true) !!}
    </body>
</html>

Images

All transform options availables at https://github.com/oscarotero/imageCow, (*10)

// resources/views/hello.blade.php

<html>
    <body>
    ...
        // Set width size to 500px using cache_folder default parameter (from settings)
        <img src="{{ Packer::img('/images/picture.jpg', 'resize,500') }}" />

        // Crop image to 200px square with custom cache folder (full path)
        <img src="{{ Packer::img('/images/picture.jpg', 'resizeCrop,200,200', '/storage/cache/images/') }}" />

        // Crop image to 200px square center middle with custom cache folder (using cache_folder as base)
        <img src="{{ Packer::img('/images/picture.jpg', 'resizeCrop,200,200', 'images/') }}" />

        // Crop image to 200px square center top with custom cache folder (using cache_folder as base)
        <img src="{{ Packer::img('/images/picture.jpg', 'resizeCrop,200,200,center,top', 'images/') }}" />
    </body>
</html>

Config

return array(

    /*
    |--------------------------------------------------------------------------
    | Current environment
    |--------------------------------------------------------------------------
    |
    | Set the current server environment. Leave empty to laravel autodetect
    |
    */

    'environment' => '',

    /*
    |--------------------------------------------------------------------------
    | App environments to not pack
    |--------------------------------------------------------------------------
    |
    | These environments will not be minified and all individual files are
    | returned
    |
    */

    'ignore_environments' => ['local'],

    /*
    |--------------------------------------------------------------------------
    | Public accessible path
    |--------------------------------------------------------------------------
    |
    | Set absolute folder path to public view from web. If you are using
    | laravel, this value will be set with public_path() function
    |
    */

    'public_path' => realpath(getenv('DOCUMENT_ROOT')),

    /*
    |--------------------------------------------------------------------------
    | Asset absolute location
    |--------------------------------------------------------------------------
    |
    | Set absolute URL location to asset folder. Many times will be same as
    | public_path but using absolute URL. If you are using laravel, this value
    | will be set with asset() function
    |
    */

    'asset' => 'http://'.getenv('SERVER_NAME').'/',

    /*
    |--------------------------------------------------------------------------
    | Base folder to store packed files
    |--------------------------------------------------------------------------
    |
    | If you are using relative paths to second paramenter in css and js
    | commands, this files will be created with this folder as base.
    |
    | This folder in relative to 'public_path' value
    |
    */

    'cache_folder' => '/storage/cache/',

    /*
    |--------------------------------------------------------------------------
    | Check if some file to pack have a recent timestamp
    |--------------------------------------------------------------------------
    |
    | Compare current packed file with all files to pack. If exists one more
    | recent than packed file, will be packed again with a new autogenerated
    | name.
    |
    */

    'check_timestamps' => true,

    /*
    |--------------------------------------------------------------------------
    | Check if you want minify css files or only pack them together
    |--------------------------------------------------------------------------
    |
    | You can check this option if you want to join and minify all css files or
    | only join files
    |
    */

    'css_minify' => true,

    /*
    |--------------------------------------------------------------------------
    | Check if you want minify js files or only pack them together
    |--------------------------------------------------------------------------
    |
    | You can check this option if you want to join and minify all js files or
    | only join files
    |
    */

    'js_minify' => true,

    /*
    |--------------------------------------------------------------------------
    | Use fake images stored in src/images/ when original image does not exists
    |--------------------------------------------------------------------------
    |
    | You can use fake images in your developments to avoid not existing
    | original images problems. Fake images are stored in src/images/ and used
    | with a rand
    |
    */

    'images_fake' => true
);

If you set the 'check_timestamps' option, a timestamp value will be added to final filename., (*11)

Using Packer outside Laravel

require (__DIR__.'/vendor/autoload.php');

// Check default settings
$config = require (__DIR__.'/src/config/config.php');

$Packer = new Eusonlito\LaravelPacker\Packer($config);

echo $Packer->css([
    '/resources/css/styles-1.css',
    '/resources/css/styles-2.css'
], 'css/styles.css')->render();

echo $Packer->js('/resources/js/scripts.js', 'js/scripts.js')->render();

echo $Packer->js([
    '/resources/js/scripts-1.js',
    '/resources/js/scripts-2.js'
], 'js/')->render();

The Versions

26/01 2018

dev-master

9999999-dev

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

26/01 2018

v2.1.6

2.1.6.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

02/04 2017

v2.1.5

2.1.5.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

09/03 2017

dev-develop

dev-develop

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

09/03 2017

v2.1.4

2.1.4.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

09/03 2017

v2.1.3

2.1.3.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

01/12 2016

v2.1.2

2.1.2.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

13/05 2016

v2.1.1

2.1.1.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

13/05 2016

v2.1.0

2.1.0.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

24/01 2016

v2.0.8.1

2.0.8.1

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

11/12 2015

v2.0.8

2.0.8.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

11/12 2015

v2.0.7

2.0.7.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

24/09 2015

v2.0.6

2.0.6.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

09/09 2015

v2.0.5

2.0.5.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

03/09 2015

v2.0.4

2.0.4.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

10/06 2015

v2.0.3

2.0.3.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

10/06 2015

v2.0.1

2.0.1.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

10/06 2015

v2.0.2

2.0.2.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

18/05 2015

v2.0.0

2.0.0.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

09/04 2015

v1.1.1

1.1.1.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

15/03 2015

v1.1

1.1.0.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

18/02 2015

4.2.x-dev

4.2.9999999.9999999-dev

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify

07/08 2014

v1.0

1.0.0.0

A package for pack css and javascript files

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel packer minify