zanysoft / laravel-assets
一个用于压缩或合并 CSS 和 JavaScript 文件包
2.0
2022-08-03 13:47 UTC
Requires
- php: >=7.4
- illuminate/support: ^6.0|^7.0|^8.0|^9.0
- intervention/image: ^2.1
This package is auto-updated.
Last update: 2024-08-30 01:08:11 UTC
README
使用此包,您可以自动合并和压缩现有的 CSS 和 JavaScript 文件。
安装
首先通过 Composer 安装此包。
运行 composer require zanysoft/laravel-assets
// config/app.php 'providers' => [ '...', 'ZanySoft\LaravelAssets\AssetsServiceProvider', ]; 'aliases' => [ '...', 'Assets' => 'ZanySoft\LaravelAssets\Facade', ];
发布配置文件
php artisan vendor:publish --provider="ZanySoft\LaravelAssets\AssetsServiceProvider"
现在您可以使用 Assets
门面。
CSS
// resources/views/hello.blade.php <html> <head> // 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) }} </head> </html>
CSS 的 url()
值将被转换为绝对路径,以避免文件引用问题。
JavaScript
// resources/views/hello.blade.php <html> <body> ... // 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) }} </body> </html>
配置
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, );
如果您设置了 'check_timestamps'
选项,则最终文件名将添加一个时间戳值。