markstory/mini-asset

一个资产压缩库。提供文件拼接和灵活的过滤系统,用于预处理和压缩。

2.1.1 2024-03-24 02:53 UTC

README

Software License Build Status codecov.io Total Downloads

Mini Asset 是一个小型库,提供工具来辅助构建资产压缩/优化流水线。它使用基于 INI 的简单配置文件,允许你定义输出文件,这些文件由多个输入文件组成。输入文件可以通过按扩展名或按文件方式处理的过滤器进行处理。过滤器允许你集成现有的预处理器和压缩器或构建自己的。

特性

  • 内置对 LESScss、Sass 和 CoffeeScript 的支持,以及多个压缩器。
  • 强大的灵活过滤系统,允许你添加自己的压缩器/预处理器。
  • 简单的 INI 配置文件。
  • 增量构建,无需重新编译不需要的资产。
  • 用于构建和清除资产的命令行工具。

安装

使用 composer 将此库添加到您的应用程序中,之后您可以将 MiniAsset 集成到您的应用程序中,并使用提供的 CLI 工具生成资产目标。

php composer.phar require 'markstory/mini-asset'

用法

在 MiniAsset 可以执行任何操作之前,您需要定义一个配置文件来定义您的资产以及应用到的过滤器。例如,我们假设您有一些需要压缩的 CSS 文件。

定义配置文件

在您的应用程序配置目录中创建一个名为 assets.ini 的文件。在这个文件中,我们将放置 MiniAsset 所需的所有配置。我们将在稍后介绍如何使用多个配置文件。假设您的应用程序有一个 app.cssreset.css 文件,请在您的配置文件中放置以下内容

[css]
cachePath = WEBROOT/cache_css/
paths[] = WEBROOT/css/*
filters[] = SimpleCssMin

[app.css]
files[] = reset.css
files[] = app.css

上述假设 WEBROOT 解析为您的应用程序文档根目录。在上面的配置中,我们定义了一些部分。首先,[css] 部分定义了所有 CSS 文件应该如何行为

  • cachePath 选项告诉 MiniAsset 将生成的资产存储在哪里。
  • paths[] 选项告诉 MiniAsset 在哪里查找 CSS 文件。路径使用 glob 语法。
  • filters[] 选项允许您配置应用到所有 CSS 文件的过滤器。过滤器按定义的顺序应用。

我们还定义了一个 [app.css] 部分。该部分定义了生成 WEBROOT/cache_css/app.css 时使用的文件。我们添加了两个文件。

请参阅示例配置文件以获取注释示例配置文件。

使用 CLI 工具构建您的资产

定义了构建目标后,我们现在可以生成我们的资产。我们可以使用 CLI 工具生成我们的资产

vendor/bin/mini_asset build --config /path/to/assets.ini

上述命令应该会生成输出,表明我们定义的 all.css 文件已编译。如果我们重新运行上述命令,则将跳过 all.css。MiniAsset 足够智能,知道何时构建目标组件发生变化,并且仅在必要时重新构建文件。

您还可以使用 mini_asset CLI 工具清除目标

vendor/bin/mini_asset clear --config /path/to/assets.ini

PSR7 中间件

Mini-asset提供了一个PSR7中间件适配器,该适配器实现了在zendframework/zend-stratagility和SlimPHP中找到的模式。在您可以使用mini-asset提供的中间件之前,请确保设置一个包含您资产的配置文件。接下来,将mini-asset集成到您的中间件堆栈中。例如,在SlimPHP应用中,您将执行以下操作:

use MiniAsset\AssetConfig;
use MiniAsset\Middleware\AssetMiddleware;

$assetConfig = AssetConfig::buildFromIniFile(__DIR__ . '../config/assets.ini');
$assets = new AssetMiddleware($assetConfig);

$app->add($assets);

框架集成

问题

请将您对插件遇到的问题报告到github问题跟踪器

许可证

Mini Asset提供MIT许可证。

版权

2010-2018 Mark Story (http://mark-story.com)

作者

请参阅github贡献者列表

变更日志

请参阅CHANGELOG以获取仅在master上可用的更改。有关先前版本的变更日志,请参阅github发行版