https://github.com/zanysoft/laravel-assets
https://github.com/zanysoft/laravel-assets
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/zanysoft/laravel-assets
- Owner: zanysoft
- License: mit
- Created: 2020-01-03T08:39:54.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-08-03T13:48:32.000Z (almost 4 years ago)
- Last Synced: 2025-06-06T00:43:14.016Z (about 1 year ago)
- Language: PHP
- Size: 1.22 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Laravel >= 5 Assets
[](https://packagist.org/packages/zanysoft/laravel-assets/)
[](https://packagist.org/packages/zanysoft/laravel-assets)
[](https://packagist.org/packages/zanysoft/laravel-assets)
With this package you can combine and minify your existing css and javascript files automatically.
## Installation
Begin by installing this package through Composer.
Run ```composer require zanysoft/laravel-assets ```
```php
// config/app.php
'providers' => [
'...',
'ZanySoft\LaravelAssets\AssetsServiceProvider',
];
'aliases' => [
'...',
'Assets' => 'ZanySoft\LaravelAssets\Facade',
];
```
Publish the config file:
```
php artisan vendor:publish --provider="ZanySoft\LaravelAssets\AssetsServiceProvider"
```
Now you have a ```Assets``` facade available.
#### CSS
```php
// resources/views/hello.blade.php
// Pack a simple file
{{ Assets::css('/css/main.css', '/storage/cache/css/main.css') }}
// Pack a simple file using cache_folder option as storage folder to packed file
{{ Assets::css('/css/main.css', 'css/main.css') }}
// Packing multiple files
{{ Assets::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
{{ Assets::css(['/css/main.css', '/css/bootstrap.css'], 'css/styles.css') }}
// Packing multiple files with autonaming based
{{ Assets::css(['/css/main.css', '/css/bootstrap.css'], '/storage/cache/css/') }}
// pack and combine all css files in given folder
{{ Assets::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
{{ Assets::cssDir('/css/', 'css/all.css') }}
// Packing multiple folders
{{ Assets::cssDir(['/css/', '/theme/'], '/storage/cache/css/all.css') }}
// Packing multiple folders with recursive search
{{ Assets::cssDir(['/css/', '/theme/'], '/storage/cache/css/all.css', true) }}
// Packing multiple folders with recursive search and autonaming
{{ Assets::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
{{ Assets::cssDir(['/css/', '/theme/'], 'css/', true) }}
```
CSS `url()` values will be converted to absolute path to avoid file references problems.
#### Javascript
```php
// resources/views/hello.blade.php
...
// Pack a simple file
{{ Assets::js('/js/main.js', '/storage/cache/js/main.js') }}
// Pack a simple file using cache_folder option as storage folder to packed file
{{ Assets::js('/js/main.js', 'js/main.js') }}
// Packing multiple files
{{ Assets::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
{{ Assets::js(['/js/main.js', '/js/bootstrap.js'], 'js/styles.js') }}
// Packing multiple files with autonaming based
{{ Assets::js(['/js/main.js', '/js/bootstrap.js'], '/storage/cache/js/') }}
// pack and combine all js files in given folder
{{ Assets::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
{{ Assets::jsDir('/js/', 'js/all.js') }}
// Packing multiple folders
{{ Assets::jsDir(['/js/', '/theme/'], '/storage/cache/js/all.js') }}
// Packing multiple folders with recursive search
{{ Assets::jsDir(['/js/', '/theme/'], '/storage/cache/js/all.js', true) }}
// Packing multiple folders with recursive search and autonaming
{{ Assets::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
{{ Assets::jsDir(['/js/', '/theme/'], 'js/', true) }}
```
### Config
```php
return array(
/*
|--------------------------------------------------------------------------
| App environments to not pack
|--------------------------------------------------------------------------
|
| These environments will not be minified and all individual files are
| returned
|
*/
'ignore_environments' => ['local'],
/*
|--------------------------------------------------------------------------
| 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,
);
```
If you set the `'check_timestamps'` option, a timestamp value will be added to final filename.