여기 파티에 정말 늦었지만 다른 답변을 찾는 사람이 여전히 도움이 될 것이라고 생각했습니다.
YUI Compressor를 사용하려고 시도한 후 최신 버전의 jQuery 및 Prism (단일 파일로 압축하려는 프로젝트에 필요한 두 개의 주요 타사 JS 라이브러리)과 호환되지 않는다는 사실에 실망했습니다. 내가 사용하기로 결정 그래서 Terser ES6 +를 지원 추하게-JS의 포크입니다. <exec>
작업을 사용하여 직접 실행할 수는 없었지만 Windows 명령 줄 방법을 사용하는 것은 적어도 Win 10에서 작동합니다 (그렇지 않으면 작동하지 않는다는 말은 아니지만 이것은 매우 쉬운 해결 방법이었습니다). Path 시스템 변수에 다른 것을 추가 할 필요가 없습니다 (일반적으로 Node.JS는 설치 중에 추가됨). 먼저 ANT <concat>
작업을 사용하여 크고 압축되지 않은 파일을 만듭니다. <fileset>
순서를 유지하므로 사용하십시오 (중요한 경우 어쨌든).
<concat destfile="${js-big-file}" encoding="UTF-8" outputencoding="UTF-8" fixlastline="true">
<filelist refid="js-input-filelist"/>
</concat>
그런 다음이 <exec>
작업을 사용하여 Terser와 같은 NPM 프로그램을 실행합니다. 이 작업에 대한 Apache 매뉴얼 페이지는 이것이 .bat 파일을 실행하기위한 Windows 해결 방법이라고 표시했지만 실제로는 거의 모든 명령 줄 응용 프로그램을 실행할 수 있습니다 ( <exec>
이상하게도 찾을 수없는 응용 프로그램 포함 ).
<exec executable="cmd">
<arg value="/c"/>
<arg value="terser"/>
<arg value="${js-big-file}" />
<arg value="-o" />
<arg value="${smaller-js-file}"/>
</exec>
통합 하시겠습니까? 이것은 ANT 빌드 스크립트 (자바 웹 애플리케이션 자체가 아니라 Java를 사용하여 HTML5 출력을 빌드하는 무엇보다도 사용자 정의 JavaScript를 지원하는 DITA Open Toolkit 플러그인)의 일부이므로 통합은 추가하는 것 이상이 아닙니다. 작업을 새 대상에 추가합니다 (기본값 설정 및 입력 매개 변수 확인과 관련된 더 많은 코드가 있습니다!).
활성화 / 비활성화하기가 쉽습니까? 제 경우에는 JS 파일 빌드 및 축소를 포함하기 위해 ANT 빌드에 전달하는 매개 변수가 있습니다. 예, 매개 변수를 '예'로 설정 한 경우에만이 대상을 수행합니다. ANT 빌드에서 설정하는 것은 매우 쉽습니다.
투명 지금까지는 내가 포함하고있는 여러 JS 파일에 영향을 미치지 않는 것으로 보입니다. 그들 중 일부는 내 소유이며 (저는 어떤 식 으로든 JS 전문가가 아닙니다) 일부는 제가 언급했듯이 일반적인 JS 라이브러리입니다.
Minifier Terser이지만이 방법으로 명령 줄 입력으로 축소 된 거의 모든 것을 사용할 수 있습니다.
기능이 부족합니까? Terser 는 JavaScript 에서만 작동합니다. 내 CSS 파일에 대해 동일한 작업을 수행하려면 (내가하는 작업) YUI Compressor를 사용합니다.
마찬가지로 그 그것은 현재 활성화 된 프로젝트이며, 좋은 지원을하고 있습니다. 또한 현재 구현 (ANT <exec>
대상을 통해서만 호출 )을 사용하면 향후 다른 것을 사용해야 할 경우 미니 파이어를 교체 할 수 있습니다.
Node.JS가 필요하다는 것을 좋아하지 마십시오. Node.JS에 반대하는 것은 없습니다.이 특정 프로젝트에는 그렇지 않으면 필요하지 않습니다. 이를 위해 YUI Compressor와 같은 Java .jar 파일을 사용하는 것을 선호합니다 (필요한 경우 플러그인으로 쉽게 배포 할 수 있음).