autominifier
Automatically Minify and Concatenate your JS and CSS files and libraries into single files for improved application performance.
Main features
- Auto minify and concatenate js and css libraries into single .min files
- Auto cache bust on changed versions
- Auto detection of environment type
Other features
- It just works, out of the box
- Set it and forget it
- No complex configurations
- No Node.js required
- No “watch” command required
- No “–production” flag required
- No configuration updates needed when adding new files
- Auto detect already minified files
- Customize destination folder and file names
- Faster than Gulp or Grunt
Install
Via Composer
$ composer require makehappen/autominifier
Basic Usage
// minifier instance with default settings
$minifier = new Makehappen\AutoMinifier\Minify();
// returns "/js/app.min.js"
$minifier->js();
// returns "/css/app.min.css"
$minifier->css();
Post install:
-
Add env.json files to .gitignore
- Update environment in env.json to development
{ "environment": "development" }
- Run minifier instance again to generate .min files
Customized Usage
Custom folders and .min files:
// minifier instance with public path relative to package src folder path
$minifier = new Makehappen\AutoMinifier\Minify();
$minifier->setPublicFolder('/../../../../public_html/');
// returns .min.js file path with custom destinations
$minifier->js('/javascript', 'functions.min.js');
// returns .min.css file path path with custom destinations
$minifier->js('/styles', 'style.min.css');
Custom list and order of files: config.json
{
"files": [
"file-1.js",
"folder2/file-2.js"
]
}
Implementation example in a Laravel project
Conventions
- By default, JavaScript files should live in the public /js folder or its sub-folders
- By default, CSS files should live in the public /css folder or its sub-folders
- Default concatenation order is alphabetical, folders first, followed by file names
- Default relative path from vendor folder to public folder is expected to be ../public
- Accepted extension files: .js, .css, .sass, .scss
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email florin@after5.io instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.