문제

사용 가능한 최고의 자바 스크립트 압축기는 무엇입니까?다음과 같은 도구를 찾고 있습니다.

  • 사용하기 쉽습니다.
  • 압축률이 높습니다.
  • 신뢰할 수있는 최종 결과 생성 (코드를 엉망으로 만들지 않음)
도움이 되었습니까?

해결책

최근에 JavaScript로 작성된 JavaScript 압축기 인 UglifyJS 를 출시했습니다 (NodeJS Node.js 플랫폼이지만 JavaScript 엔진에서 실행되도록 쉽게 수정할 수 있습니다. Node.js 내부가 필요합니다). YUI Compressor Google Closure , YUI 를 사용했으며 Closure보다 안전합니다 ("eval "또는"with "처리를 알고 있음).

공백 제거 외에 UglifyJS는 다음 작업도 수행합니다.

  • 지역 변수 이름 변경 (일반적으로 단일 문자)
  • 연속적인 var 선언 결합
  • 불필요한 대괄호, 괄호 및 세미콜론 삽입 방지
  • IF를 최적화합니다 (필요하지 않다는 것을 감지하면 "else"를 제거하고 가능한 경우 IF를 &&, || 또는? / : 연산자로 변환합니다. 등).
  • 가능한 경우 foo["bar"]foo.bar로 변환
  • 가능한 경우 개체 리터럴의 키에서 따옴표를 제거합니다.
  • 더 작은 코드 (1 + 3 * 4==> 13)로 이어질 때 간단한 표현식을 해결합니다.

    PS : 오, "아름답게"할 수도 있습니다. ;-)

다른 팁

몇 년 후 UglifyJS 를 다시 방문하는 것이 현재로서는 최선의 선택 인 것 같습니다. .

아래에서 언급했듯이 NodeJS 플랫폼에서 실행되지만 모든 JavaScript 엔진에서 실행되도록 쉽게 수정할 수 있습니다.

--- 아래의 이전 답변 ---

Google은 Closure Compiler 를 출시했습니다. 여기 에 표시된 가장 작은 파일 및 여기

이전에는 다양한 옵션 다음과 같았습니다

기본적으로 Packer 는 초기 압축시 더 나은 작업을 수행하지만, gzip을 사용하려는 경우 전송하기 전에 파일을 전송해야합니다 (이 작업을 수행해야 함). YUI Compressor 는 가장 작은 최종 크기를 가져옵니다.

테스트는 jQuery 코드 btw에서 수행되었습니다.

  • 원래 jQuery 라이브러리 62,885 바이트, gzip 이후 19,758 바이트
  • JQuery를 JSMin 36,391 바이트, gzip 후 11,541 바이트로 축소
  • Packer로 축소 된 jQuery 21,557 바이트, gzip 후 11,119 바이트
  • YUI Compressor로 축소 된 jQuery 31,822 바이트, gzip 후 10,818 바이트

    @ 다니엘 제임스 compressorrater 는 최고의 압축률로 차트를 선도하는 Packer를 보여 주므로 ymmv라고 생각합니다.

YUI Compressor 를 사용하면됩니다.압축률이 뛰어나고 잘 테스트되었으며 많은 상위 사이트에서 사용 중이며 개인적으로 권장합니다.

단 하나의 자바 스크립트 오류나 딸꾹질없이 프로젝트에 사용했습니다.그리고 멋진 문서도 있습니다.

CSS 압축 기능을 사용 해본 적이 없지만 그것들도 존재합니다. CSS 압축도 잘 작동합니다.

참고 : Dean Edwards의 / packer /는 YUI 압축기보다 더 나은 압축률을 달성하지만, 사용할 때 몇 가지 JavaScript 오류가 발생했습니다.

나는 Dojo 프로젝트에서 ShrinkSafe 를 사용합니다 . 실제로 JavaScript 인터프리터 ( Rhino )를 사용하여 코드에서 기호를 찾고 범위를 이해합니다. 정규식을 사용하여 동일한 작업을 수행하는 많은 압축 도구와는 반대로 코드가 다른 쪽 끝에서 나올 때 코드가 작동하는지 확인하는 데 도움이됩니다 (신뢰성이 떨어짐).

실제로 웹 배포 프로젝트 는 매우 잘 작동합니다.

편집 : 그런데 "최고"의 기준은 프로젝트의 필요에 따라 다르기 때문에 "최고"는 토론 할 수 있습니다. 개인적으로 ShrinkSafe가 좋은 것 같습니다. 균형; 가장 작은 크기== 가장 좋다고 생각하는 일부 사람들에게는 충분하지 않습니다.

편집 : YUI 압축기도 Rhino를 사용한다는 점은 주목할 가치가 있습니다.

JSMin 을 사용해보고 C #, Java, C 및 기타 포트를 얻었으며 즉시 사용할 수 있습니다.너무.

Packer를 사용하는 경우 '변수 축소'옵션으로 이동하여 결과 코드를 gzip하십시오.base62 옵션은 서버가 gzip 파일을 보낼 수없는 경우에만 사용됩니다.'shrink vars'가있는 Packer는 YUI를 더 잘 압축하지만 세미콜론을 어딘가에 건너 뛰면 버그가 발생할 수 있습니다.

base62는 기본적으로 가난한 사람의 gzip이므로, base62-ed 코드를 gzip하면 축소 축소 코드를 gzip하는 것보다 더 큰 파일을 얻을 수 있습니다.

JSMin 은 또 다른 것입니다.

<인용구>

실버 총알 검색에서 질문.Ruby on Rails의 경우 http://github.com/sstephenson/sprockets

Here's the source code of an HttpHandler which does that, maybe it'll help you

Here is a YUI compressor script (Byuic) that finds all the js and css down a path and compresses /(optionally) obfuscates them. Nice to integrate into a build process.

bananascript.com used to give me best results.

KJScompress

http://opensource.seznam.cz/KJScompress/index.html

Kjscompress/csskompress is set of two applications (kjscompress a csscompress) to remove non-significant whitespaces and comments from files containing JavaScript and CSS. Both are command-line applications for GNU/Linux operating system.

Js Crush is a good compressor to use after you have minified.

I use jscompressor.com as a chrome app.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top