공백을 제거하고, 주석을 제거하고, 파일을 결합하고(CSS 파일의 @import
문 및 작은 자산 포함) 다음과 같은 몇 가지 일반적인 프로그래밍 패턴을 최적화/단축합니다.
자바스크립트
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 {}
-> 제거됨
그리고 그것은 거대한 테스트 스위트와 함께 제공됩니다.
use MatthiasMullieMinify;$sourcePath = '/path/to/source/css/file.css';$minifier = new MinifyCSS($sourcePath);// 다른 파일을 추가할 수도 있습니다. 그런 다음 // 1로 결합됩니다. 출력 파일$sourcePath2 = '/path/to/second/source/css/file.css';$minifier->add($sourcePath2);// 또는 그냥 일반 추가 가능 CSS$css = '본문 { 색상: #000000; }';$minifier->add($css);// 디스크에 축소된 파일 저장$minifiedPath = '/path/to/minified/css/file.css';$minifier->minify($minifiedPath);// 아니면 그냥 contentecho $minifier->minify();를 출력하세요.
// CSS 예제를 살펴보세요. 정확히 동일하지만 JS 클래스 및 JS 파일이 있습니다. :)
CSS 및 JS 축소기에 사용 가능한 방법은 다음과 같습니다.
객체 생성자는 0, 1 또는 여러 파일 경로를 허용하거나 축소해야 하는 전체 CSS/JS 콘텐츠도 허용합니다. 전달된 모든 CSS/JS는 하나의 축소된 파일로 결합됩니다.
MatthiasMullieMinify 사용;$minifier = new MinifyJS($path1, $path2);
이는 생성자와 거의 동일합니다.
$minifier->추가($path3);$minifier->추가($js);
그러면 파일 내용이 축소되고 결과가 $path에 저장되며 결과 내용이 반환됩니다. $path 매개변수를 생략하면 결과가 어디에도 기록되지 않습니다.
주의: 상대 경로(가져오기, 이미지 등)가 있는 CSS가 있는 경우 항상 대상 경로를 지정해야 합니다! 그러면 해당 상대 경로가 새 경로에 따라 조정됩니다.
$minifier->minify('/target/path.js');
minify()
와 마찬가지로 축소하고 선택적으로 파일에 저장하지만 gzencode()
축소된 콘텐츠이기도 합니다.
$minifier->gzip('/target/path.js');
CSS 축소기는 참조 파일(예: 이미지, 글꼴 등)을 축소된 CSS에 자동으로 포함하므로 여러 연결을 통해 가져올 필요가 없습니다.
그러나 매우 큰 파일의 경우 파일을 별도로 로드하는 것이 더 나을 수 있습니다(포함되면 CSS 로드 시간이 늘어납니다).
이 방법을 사용하면 축소된 CSS로 가져올 파일의 최대 크기를 kB 단위로 설정할 수 있습니다. 기본 크기는 5입니다.
$minifier->setMaxImportSize(10);
CSS 축소기는 참조 파일(예: 이미지, 글꼴 등)을 축소된 CSS에 자동으로 포함하므로 여러 연결을 통해 가져올 필요가 없습니다.
이 메소드를 사용하면 data:mime 유형과 함께 파일 유형을 지정할 수 있습니다.
기본 포함된 파일 형식은 gif, png, jpg, jpeg, svg, apng, avif, webp, woff 및 woff2입니다.
$extensions = array('gif' => '데이터:이미지/gif','png' => '데이터:이미지/png', );$minifier->setImportExtensions($extensions);
Composer를 사용하여 프로젝트의 종속성을 관리하는 경우 matthiasmullie/minify
에 대한 종속성을 Composer.json 파일에 추가하기만 하면 됩니다.
작곡가는 matthiasmullie/minify가 필요합니다.
Composer를 사용하는 것이 권장되지만 실제로는 원하는 대로 이러한 파일을 포함할 수 있습니다.
Minify는 MIT 라이센스를 받았습니다.