MIT License

项目介绍

matthiasmullie/minify 是一个托管在 GitHub 上的开源项目,主要使用 PHP 编写,采用 MIT License 许可证,目前获得 2.0k 个 Star、331 次 Fork。

仓库全名
matthiasmullie/minify
开源许可证
MIT License
Star 数
2.0k
Fork 数
331
未关闭 Issue
97

README 摘要

Minify Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns, such as: JavaScript object['property'] -> object.property true, false -> !0, !1 while(true) -> for(;;) CSS @import url("http://path") -> @import "http://path" #ff0000, #ff00ff -> red, #f0f -0px, 50.00px -> 0, 50px bold -> 700 p {} -> removed…

完整内容见 GitHub 原始 README 或本页 。

常见问题

minify 用什么语言开发?

主要使用 PHP 编写,采用 MIT License 许可证,目前有 2.0k 个 Star。

minify 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 minify 的源码?

可以直接克隆仓库:git clone https://github.com/matthiasmullie/minify.git,默认分支为 master;安装与运行步骤见仓库 README。

minify 最近还在维护吗?

仓库最近一次更新为 3 天前,当前有 97 个未关闭 Issue;Star 数为 2.0k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
2775
价值分
1325
活跃状态
活跃

语言占比

CSS
Dockerfile
JavaScript
Makefile
PHP

Release

README

Minify

Build status Code coverage Latest version Downloads total License

Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns, such as:

JavaScript

  • object['property'] -> object.property
  • true, false -> !0, !1
  • while(true) -> for(;;)

CSS

  • @import url("http://path") -> @import "http://path"
  • #ff0000, #ff00ff -> red, #f0f
  • -0px, 50.00px -> 0, 50px
  • bold -> 700
  • p {} -> removed

And it comes with a huge test suite.

Usage

CSS

use MatthiasMullie\Minify;

$sourcePath = '/path/to/source/css/file.css';
$minifier = new Minify\CSS($sourcePath);

// we can even add another file, they'll then be
// joined in 1 output file
$sourcePath2 = '/path/to/second/source/css/file.css';
$minifier->add($sourcePath2);

// or we can just add plain CSS
$css = 'body { color: #000000; }';
$minifier->add($css);

// save minified file to disk
$minifiedPath = '/path/to/minified/css/file.css';
$minifier->minify($minifiedPath);

// or just output the content
echo $minifier->minify();

JS

// just look at the CSS example; it's exactly the same, but with the JS class & JS files :)

Methods

Available methods, for both CSS & JS minifier, are:

__construct(/* overload paths */)

The object constructor accepts 0, 1 or multiple paths of files, or even complete CSS/JS content, that should be minified. All CSS/JS passed along, will be combined into 1 minified file.

use MatthiasMullie\Minify;
$minifier = new Minify\JS($path1, $path2);

add($path, /* overload paths */)

This is roughly equivalent to the constructor.

$minifier->add($path3);
$minifier->add($js);

minify($path)

This will minify the files’ content, save the result to $path and return the resulting content. If the $path parameter is omitted, the result will not be written anywhere.

CAUTION: If you have CSS with relative paths (to imports, images, …), you should always specify a target path! Then those relative paths will be adjusted in accordance with the new path.

$minifier->minify('/target/path.js');

gzip($path, $level)

Minifies and optionally saves to a file, just like minify(), but it also gzencode()s the minified content.

$minifier->gzip('/target/path.js');

setMaxImportSize($size) (CSS only)

The CSS minifier will automatically embed referenced files (like images, fonts, …) into the minified CSS, so they don’t have to be fetched over multiple connections.

However, for really large files, it’s likely better to load them separately (as it would increase the CSS load time if they were included.)

This method allows the max size of files to import into the minified CSS to be set (in kB). The default size is 5.

$minifier->setMaxImportSize(10);

setImportExtensions($extensions) (CSS only)

The CSS minifier will automatically embed referenced files (like images, fonts, …) into minified CSS, so they don’t have to be fetched over multiple connections.

This methods allows the type of files to be specified, along with their data:mime type.

The default embedded file types are gif, png, jpg, jpeg, svg, apng, avif, webp, woff and woff2.

$extensions = array(
    'gif' => 'data:image/gif',
    'png' => 'data:image/png',
);

$minifier->setImportExtensions($extensions);

Installation

Simply add a dependency on matthiasmullie/minify to your composer.json file if you use Composer to manage the dependencies of your project:

composer require matthiasmullie/minify

Although it’s recommended to use Composer, you can actually include these files anyway you want.

License

Minify is MIT licensed.

评论

暂无评论