jakercz / webloader
简单易用,适用于 JavaScript 和 CSS 的 PHP 打包器
v1.3.2
2021-03-09 15:11 UTC
Requires
- php: >=7.2
- nette/neon: ^2.4|^3.0
Requires (Dev)
- machy8/google-closure-compiler: ^1.0
- migrify/config-transformer: ^0.3.26
- nette/tester: ^2.3
- phpstan/phpstan: ^0.12
- symplify/easy-coding-standard: ^8.2
- tracy/tracy: ^2.7
- tubalmartin/cssmin: ^4.1
Suggests
- machy8/google-closure-compiler: PHP client for the Google Closure Compiler API in one file
- tedivm/jshrink: Javascript Minifier built in PHP
- tubalmartin/cssmin: A PHP port of the YUI CSS compressor
README
📦 简单易用,适用于 JavaScript 和 CSS 的 PHP 打包器。
简而言之
- 可配置:在一个文件中(以下示例或在文档中)
- 文件 集合 和 容器:使资产管理变得极其简单
- 过滤器:两种不同的调用方式
- 路径占位符:可重用的文件路径,减少编写
- 允许加载 远程 和 本地 文件
- 如果您有一些关键的 CSS,可以将其直接加载到页面中,所需的配置最少
- 为只读部署准备就绪 - Web Loader 能够一次性编译所有文件集合
- 调试栏 用于 Tracy
要求
- PHP 7.2+
- 如果您使用 Nette 框架 - v2.4+
安装
composer require machy8/webloader
文档
快速入门
假设我们有两个 CSS 文件(styla-a.css 和 style-b.css),我们想要将它们打包到一个文件中,该文件名为 my-bundle。此捆绑包将存储在 webtemp 目录(必须可通过浏览器访问)中。
配置 Web Loader 的推荐方法是通过 neon 配置文件。第一步是创建一个 bundle.neon 文件。
my-bundle: cssFiles: - path/to/style-a.css - path/to/style-b.css
下一步是初始化 Web Loader,设置输出目录路径,并告诉他从 bundle.neon 创建捆绑包。
$webloader = new \WebLoader\Engine('path/to/webtemp'); $webloader->createFilesCollectionsFromConfig('path/to/bundle.neon');
最后一步是调用文件集合渲染以渲染名为 my-bundle 的 CSS 文件集合。
echo $webloader->getFilesCollectionRender()->css('my-bundle');
经过最后编辑的 PHP 文件将如下所示
$webloader = new \WebLoader\Engine('path/to/output/dir'); $webloader->createFilesCollectionsFromConfig('path/to/bundle.neon'); echo $webloader->getFilesCollectionRender()->css('my-bundle');
输出将类似于以下代码
<link type="text/css" rel="stylesheet" href="/path/to/webtemp/my-bundle.css?v=1512829634">
快速入门(针对 Nette 框架)
对于 Nette 框架,这与它非常相似。首先,注册 Web Loader 扩展。
extensions: webloader: WebLoader\Bridges\Nette\WebLoaderExtension
下一步是添加包含 my-bundle 集合配置的 Web Loader 部分。
webloader: filesCollections: my-bundle: cssFiles: - path/to/style-a.css - path/to/style-b.css
在您的演示者中注入引擎...
/** * @var Engine */ private $webLoader; public function __construct(\WebLoader\Engine $engine) { $this->webLoader = $engine; }
并设置模板参数(例如在 beforeRender 方法中)。
public function beforeRender() { $this->template->setParameters([ 'webloaderFilesCollectionRender' => $this->webLoader->getFilesCollectionRender() ]); }
最后一步是在 latte 模板中调用渲染。
{$webloaderFilesCollectionRender->css('my-bundle')|noescape}