온라인 자바스크립트 최소화 도구, UglifyJS, Terser 및 Google Closure Compiler와 비교| 온라인 자바스크립트 최소화 | UglifyJS | 테르서 | 구글 클로저 컴파일러 |
|---|
| 축소 엔진: DigitalOcean 페이지는 스스로를 Terser를 위한 대화형 웹 인터페이스라고 설명하므로 출력은 별도의 알고리즘이 아닌 Terser가 생성한 결과입니다. | 축소 엔진: UglifyJS는 JavaScript 파서, 코드 변형 도구 및 압축 도구입니다. Terser는 ES6+ 버전(uglify-es)에서 파생되었으며, 두 도구는 대부분 동일한 API와 명령줄 인터페이스를 유지합니다. | 축소 엔진: Terser는 DigitalOcean 페이지를 감싸는 엔진입니다. 직접 사용하면 압축, 데이터 변형, 데이터 변형 속성, 형식 지정 및 구문 분석 옵션을 사용할 수 있습니다. | 축소 엔진: Closure Compiler는 별도의 Java 기반 컴파일러입니다. 코드 길이를 줄여줄 뿐만 아니라 구문, 변수 참조 및 유형을 검사하고 일반적인 JavaScript 오류에 대해 경고합니다. |
| Language support: 페이지 로딩을 담당하는 엔진인 Terser는 ES6+ 코드용 툴킷으로 설명됩니다. | Language support: 이 프로젝트는 JavaScript와 대부분의 ECMAScript 언어 기능을 지원한다고 명시하고 있습니다. 보다 특수한 기능을 사용하려면 Babel과 같은 도구를 사용하여 먼저 트랜스파일링할 것을 권장합니다. | Language support: Terser는 ES6+용 툴킷으로 설명됩니다. ES6+ 출력 변환을 허용하려면 ecma 옵션을 2015 이상으로 설정할 수 있습니다. | Language support: 타입 정보는 주석에 어노테이션을 사용하여 선언할 수 있으며, 컴파일러는 이를 검사에 사용합니다. |
| 최적화 수준: 페이지 본문에는 개별 설정 목록이 나와 있지 않습니다. | 최적화 수준: 동작은 명령줄 또는 minify() API를 통해 압축 및 변형 옵션을 조정하여 설정할 수 있습니다. | 최적화 수준: 동작은 압축, 변형, 변형 속성 및 형식 옵션을 통해 조정됩니다. | 최적화 수준: `--compilation_level` 플래그는 BUNDLE, WHITESPACE_ONLY, SIMPLE(기본값) 및 ADVANCED를 지원합니다. 해당 프로젝트에서는 컴파일러가 모든 소스 코드를 한 번에 받을 때 가장 큰 성능을 발휘하므로 ADVANCED 모드를 활성화해야 하며, ADVANCED 이외의 모드는 더 이상 사용되지 않는다고 설명합니다. |
| 설치 및 자동화: 설치 과정이 필요 없습니다. 코드는 브라우저에 바로 입력됩니다. 페이지에는 빌드 파이프라인에서의 사용 방법에 대한 설명이 전혀 없습니다. | 설치 및 자동화: npm을 사용하여 설치하면 명령줄에서 전역적으로 사용하거나 프로그램에서 로컬로 사용할 수 있으며, 최신 Node.js 버전이 필요합니다. | 설치 및 자동화: npm을 사용하여 전역 또는 로컬로 설치할 수 있습니다. API는 비동기 minify() 및 동기 minify() 함수를 제공합니다. | 설치 및 자동화: npm(Google이 아닌 타사에서 관리하는 패키지)을 통해 이용 가능하며, Maven으로 컴파일된 릴리스 형태로 제공되거나 소스 코드에서 직접 빌드할 수도 있습니다. 소스 코드 빌드에는 Java 21 이상, Node.js, Git 및 Bazelisk가 필요합니다. |
| 출처 지도: 소스 맵은 명령줄에서 --source-map 옵션을 사용하거나 minify() 함수의 sourceMap 옵션을 사용하여 활성화할 수 있으며, 입력 소스 맵과의 합성도 포함됩니다. | 출처 지도: 소스 맵은 `--source-map` 또는 `sourceMap` 옵션을 사용하여 활성화할 수 있습니다. 옵션에는 파일 이름, URL, 루트, 콘텐츠 및 포함 소스가 있으며, API는 결과값을 `result.map`에 반환합니다. | |