assets-compressor/assets-compressor

Combine, compress and version CSS/JS files.

1.0.0 2018-05-07 11:21 UTC

This package is auto-updated.

Last update: 2024-04-04 19:29:57 UTC


README

Combine, compress and version CSS/JS code.

Installation

composer require assets-compressor/assets-compressor

Command line usage

Execute AssetsCompressor using default configuraton file

Running assets-compressor alone from command line will execute application using assets.yml or .assets.yml configuration file located in project root.

assets-compressor

or

vendor/bin/assets-compressor

Get help on command line options

assets-compressor --help

Class usage

You can also use the class directly.

Simple execution using config file

<?php
use AssetsCompressor\AssetsCompressor;

$compressor = new AssetsCompressor('/PATH/TO/CONFIG/assets.yml');
$compressor->run();

Adding entry points manualy

<?php
use AssetsCompressor\AssetsCompressor;

// Create instance
$compressor = new AssetsCompressor();

// Add entry points (output files)
$compressor->addEntryPoint('/assets/css/vendor.css', [
    '/vendor/select2/dist/select2.css',
    '/vendor/jquery-ui/dist/jquery-ui.css',
    '/css/external/*.css',
]);
$compressor->addEntryPoint('/assets/css/main.css', [
    '/assets/css/components/*.css',
]);

// Execute compressor
$compressor->run();

Sample configuration file

Configuration is stored in yml file. When using command line application will search for it in /assets.yml and /.assets.yml. First level entries are entry points (output files), second level (intended entries) are input files.

# /.assets.yml
/assets/css/vendor.css
    - /vendor/select2/select2/dist/select2.css
    - /vendor/jquery-ui/jquery-ui/css/jquery-ui.css
    - /resources/components/bootstrap4/dist/css/boostrap.css
/assets/css/main.css
    - /resources/components/css/*.css
# Ignore somelibrary.css
    - !/resources/components/css/somelibrary.css
/assets/js/vendor.js
    - /vendor/select2/select2/dist/select2.js
    - /vendor/jquery-ui/jquery-ui/css/jquery-ui.js
    - /resources/components/bootstrap4/dist/js/boostrap.js
/assets/js/app.js
    - /resources/components/js/*.js
# Ignore somelibrary.js
    - !/resources/components/js/somelibrary.js

Files hashes

By default application generates busters.json file that contains file hashes map in project root directory (it is a configuration file directory by default). If you want to change where hashes file is stored provide hashes directory using: AssetsCompressor->setHashesFilePath('/asssets.json').