source

최고의 자바스크립트 압축기

nicesource 2023. 10. 26. 21:14
반응형

최고의 자바스크립트 압축기

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

  • 사용하기 쉽습니다
  • 압축률이 높습니다.
  • 신뢰할 수 있는 최종 결과 생성(코드를 망치지 않음)

최근에 자바스크립트로 작성된 (NodeJS Node.js 플랫폼에서 실행되는) 자바스크립트 압축기인 UglifyJS를 출시했는데, 필요가 없기 때문에 어떤 자바스크립트 엔진에서도 실행할 수 있도록 쉽게 수정할 수 있습니다.Node.js내부).YUI CompressorGoogle Closure 둘 다보다 훨씬 빠르며, 테스트한 모든 스크립트에서 YUI보다 더 잘 압축되며 Closure보다 더 안전합니다("eval" 또는 "with"로 처리할 수 있음).

공백 제거 이외의 UglifyJS는 또한 다음을 수행합니다.

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

추신: 아, 그것은 또한 "아름답게" 할 수 있습니다. ;-)

몇 년 후 이 질문을 다시 검토해 보면, UglifyJS가 현재로서는 최선의 선택인 것 같습니다.

아래에 명시된 바와 같이, NodeJS 플랫폼에서 실행되지만, 어떠한 자바스크립트 엔진에서도 실행할 수 있도록 쉽게 수정할 수 있습니다.

--- 아래의 오래된 대답---

구글은 클로저 컴파일러를 출시했는데, 클로저 컴파일러는 여기여기에서 볼 수 있는 가장 작은 파일을 생성하고 있는 것으로 보입니다.

그 이전의 다양한 옵션은 다음과 같습니다.

기본적으로 초기 압축 시 패커가 더 잘 수행하지만 유선으로 전송하기 전에 파일을 압축하려면 YUI 압축기가 가장 작은 최종 크기를 갖게 됩니다.

그건 그렇고 테스트는 jQuery 코드로 했습니다.

  • 원본 jQuery 라이브러리 62,885바이트, gzip 뒤에 19,758바이트
  • jQuery 36,391바이트, gzip 후 11,541바이트로 JSM으로 최소화
  • jQuery는 packer 21,557 바이트, gzip 후 11,119 바이트로 최소화됨
  • jQuery는 YUI Compressor 31,822바이트, gzip 후 10,818바이트로 최소화되었습니다.

@daniel james는 댓글 압축기에서 언급하는데, 이는 패커가 최고의 압축률로 차트를 이끄는 것을 보여주므로 ymmv라고 생각합니다.

YUI Compressor가 가야 할 길입니다.압축률이 좋고, 테스트가 잘 되어 있고, 여러 최고의 사이트에서 사용하고 있으며, 개인적으로 제가 추천한 제품입니다.

자바스크립트 오류나 딸꾹질 하나 없이 프로젝트에 사용했습니다.그리고 좋은 설명서를 가지고 있습니다.

CSS 압축 기능을 사용해 본 적은 없지만 존재합니다. CSS 압축도 마찬가지로 작동합니다.

참고: Dean Edwards의 /packer/는 YUI Compressor보다 더 나은 압축률을 달성하지만, 사용 중에 몇 가지 자바스크립트 오류가 발생했습니다.

Dojo 프로젝트ShrinkSafe를 사용합니다. 코드에서 기호를 찾고 그 범위를 파악하는 등의 작업을 실제로는 자바스크립트 인터프리터(Rhino)를 사용하기 때문에 예외적으로 코드가 다른 쪽으로 나올 때 동작할 수 있도록 도와줍니다.동일한 작업을 수행하기 위해 regex를 사용하는 많은 압축 도구와 대조적으로 (신뢰성이 떨어짐).

저는 현재의 Visual Studio 솔루션의 Web Deployment Project에서 MSBuild 작업을 수행하고 있으며, 이 작업은 ScrinkSafe를 통해 솔루션의 모든 JS 파일을 실행한 후 배포할 수 있습니다.

편집: 그런데 '최선'은 프로젝트의 필요에 따라 '최선'의 기준이 달라지기 때문에 논쟁의 여지가 있습니다.개인적으로, ShrinkSafe는 좋은 균형이라고 생각합니다. 가장 작은 사이즈 ==를 가장 잘 생각하는 사람들에게는 부족할 것입니다.

편집: YUI 압축기도 코뿔소를 사용한다는 점에 주목할 필요가 있습니다.

JSMin을 사용해보고 C#, Java, C 및 기타 포트를 구입하여 쉽게 사용할 수 있습니다.

패커를 사용하는 경우 '변수 축소' 옵션을 멀리하고 결과 코드를 압축하면 됩니다.base62 옵션은 서버가 gziped 파일을 보낼 수 없는 경우에만 해당됩니다.'shrink vars'가 있는 패커는 YUI를 더 잘 압축할 수 있지만 세미콜론을 어딘가로 건너뛰었을 경우 버그를 발생시킬 수 있습니다.

base62는 기본적으로 가난한 남자의 gzip입니다. 그래서 gzip base62-ed 코드가 gzip 축소-vared 코드보다 더 큰 파일을 제공합니다.

제이에스민은 또 하나입니다.

은탄을 찾는 과정에서 이 질문을 발견했습니다.Ruby on Rails용 http://github.com/sstephenson/sprockets

여기 HttpHandler의 소스 코드가 있습니다. 아마 당신에게 도움이 될 겁니다.

여기에 경로를 따라 모든 js와 css를 찾아 /(선택적으로) 난독화하는 YUI 압축기 스크립트(Byuic)가 있습니다.빌드 프로세스에 통합할 수 있어 좋습니다.

bananascript.com 은 나에게 최고의 결과를 주곤 했습니다.

KJS 압축

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

Kjscompress/csskcompress는 자바스크립트와 CSS가 포함된 파일에서 중요하지 않은 공백과 주석을 제거하기 위해 두 개의 응용 프로그램(kjscompress cscompress)으로 설정됩니다.둘 다 GNU/리눅스 운영 체제용 명령줄 응용 프로그램입니다.

Js Crush는 미니드 후에 사용하기 좋은 압축기입니다.

언급URL : https://stackoverflow.com/questions/28932/best-javascript-compressor

반응형