터미널을 통해 실행할 수있는 축소 도구


35

나는 도구 또는 작게하다 할 수있는 방법 (유사 찾고 있어요 압축 내 코드 와이 문제 내에서 코드의 스택에) 모든 .xml, .css, .html.js우분투의 터미널을 통해 파일. 결국 프로세스를 bash 스크립트로 작성하지만 현재 테스트 할 항목을 찾고 싶습니다. 터미널을 통해 이러한 모든 파일 형식을 압축하는 데 사용할 수있는 도구가 있습니까?


2
당신은 같은 것을 시도 했습니까 tar -czvf compressed.tar.gz *.xml *.css *.html *.php?
roadmr

1
코드 자체를 압축하려고합니다. CSS와 같은 것
DᴀʀᴛʜVᴀᴅᴇʀ

1
그런 다음 압축을 요구하지 않는다고 생각합니다 . 일반 파일 (음악 / 비디오와 같은 미디어가 아닌 파일)을 압축하면 대부분 무손실 압축 만 고려하지만 공백을 최소화 할 수있는 방법을 찾고 있습니다 (이 데이터가 손실 됨). 축소가 손실되기 때문에 압축을 풀 수 없습니다 (가역적이지 않기 때문에). 나에게 이것은 "당신이 무엇을 묻고 있는지 불분명합니다".
gertvdijk

답변:


43

이것이 최선의 선택은 아니지만 아마도 가장 쉬운 방법 일 것입니다. YUI 압축기는 오랫동안 Javascript 및 CSS에 가장 적합한 압축기로 여겨져 다른 축소 기보다 20-40 % 개선되었습니다.

그 이후 Uglify.JS (그런트가 제안 할 것임)와 같은 새로운 프로젝트로 대체되었지만 우분투에서 시작하고 실행하는 것은 여전히 ​​쉬운 일입니다.

sudo apt-get install yui-compressor

그게 다야. 이제 실행할 수 yui-compressor myfile.js있고 Node / Grunt / Uglify + YUI 스택을 올바르게 설치하는 것만큼이나 편리하게 마법을 수행 할 수 있습니다 .


15
js 또는 css를 사용하는 모든 사람이 node.js를 사용하거나 node.js 프로젝트를 수행하는 것은 아닙니다. grunt를 사용하려는 경우 배우고 구성하는 또 다른 프레임 워크입니다. 그래 그런트가 멋지다. 그러나 오늘날 우리는 코딩을 시작하기 전에 이미 배울 점이 충분합니다. 따라서 노드 / 그런트가 항상 편리한 것은 아닙니다. :) 나는 스스로 유이 압축기에 대한 당신의 제안을 시도 할 것입니다.
Bill Rosmus

2
@BillR 나는 정서에 동의하지만 node.js 프로젝트는 없지만 lessc 및 uglify.js와 같은 것들을 사용 합니다 . Grunt를 자체 툴링으로 교체했기 때문에 Grunt를 사용하지는 않지만 실제 작업을 위해 절대 노드를 피하기 위해 절대로 고민하지 않았습니다. 업계에 머 무르려면 모범 사례를 따라야합니다.
Oli

노드 사용이 모범 사례라고 가정합니다. 어쩌면 당신의 세계에서 모든 사람의 세계가 아닙니다.
Bill Rosmus

2
5 년이 지났지 만 요점이 무엇인지 모르겠습니다. 아직도 약간의 "DHTML"및 perl CGI 스크립트와 함께 정적 HTML4를 사용하고 있습니까? 아직도 ASP를 사용하고 있습니까? 아니면 더 나은 기술을 활용할 수있게 되었습니까? 우리는 이것에 대해 두 가지 별도의 요점을 가지고 있습니다. 조금 어리석어지고 있습니다. 재교육을 좋아하지 않더라도 신경 쓰지 않지만 more-cssCSS를 축소하기 위해 NPM 패키지를 사용하는 것이 yui-compressor를 사용하는 것보다 더 방해가 되는 것을 신경 쓰지 않습니다. 그렇지 않습니다. 그것은 똑같은 일을 더 잘하는 또 다른 명령 일뿐입니다.
Oli

1
이 설치를 사용하면 시스템에서 원하지 않는 openjkd도 설치하게됩니다.
reallynice

12

명령 행에서 node 및 uglify-js 를 사용 하여 js를 쉽게 축소 할 수 있습니다 .

  • 함께 uglify-js를 설치하십시오 npm install uglify-js -g

  • 그것을 실행 uglifyjs app-test.js > app-test.min.js


CSS의 경우 clean-css (아마도 npm에서 가장 안정적인 CSS 축소 기)
사용법을 제안 합니다.

cleancss -o public-min.css public.css

html과 관련하여 일반적으로 축소는 일반적으로 설정에 투자 할 가치가 없지만 html-minifier를 시도해 보았 으므로 멋진 도구입니다.

당신이 무엇을 하든지 당신이 봉사하는 것을 압축하십시오.


1
uglify sudo apt-get install node-uglify
Gery

uglify-js는 자바 스크립트 전용이며 CSS 나 다른 파일 용은 아닙니다.
Jose Gómez

2
@Gery 설치하려는 경우 uglifyapt당신은 또한 설치할 필요는 node-legacy, 그래서 실행sudo apt install node-uglify node-legacy
mxdsp

있습니다 cleancssCLI 도구는에 지금 clean-css-cli패키지로 제공된다.
jbg

7

사용 작게하다 - 다른 제안과는 달리,이 도구를 축소하고 더 많은 파일 형식 :

CSS     text/css
HTM     text/html
HTML    text/html
JS      text/javascript
JSON    application/json
SVG     image/svg+xml
XML     text/xml

자바 스크립트에서 매우 열악한 작업을 수행합니다.
Federico

2

PHP 파일을 축소 할 이유가 없습니다 (디스크 공간이 매우 제한되어 있고 모든 비트를 사용하려는 경우는 제외).

목표를 추가 할 수 있다면 (무엇을 달성하고 싶은지, 왜 그런가?) 누군가 더 나은 방법을 보여줄 수 있습니다.

JS 및 CSS 파일은 런타임시 최소화되고 대부분의 웹 프로젝트에서 캐시됩니다. 정확하게 할 수있는 PHP "라이브러리"인 minify ( https://github.com/mrclay/minify )가 있습니다. (단말기에서 PHP로 실행할 수도 있습니다)

그러나 하나의 큰 자바 스크립트 파일은 5 개의 작은 파일보다 빠르게로드 할 필요가 없습니다. 이 진술에 대한 이유와 해결책이 필요한 경우 http://headjs.com/ 을 참조 하십시오.

소스가 당신과 함께 있기를 바랍니다 ...


1

Grunt.js 사용을 권장 합니다. 플러그인으로 사용할 수있는 축소 기능이있는 자동화 도구이며 Node.js를 통해 터미널에서 실행할 수 있습니다. 코드가 서버 측에서 실행되고 HTML 출력 만 클라이언트로 전송되므로 PHP를 축소 할 필요는 없습니다.

사용 가능한 플러그인은 여기에서 찾을 수 있습니다


2
그런트를 선택한다는 것은 학습 곡선을 의미합니다.
Rick-777

1

Closure Compiler로 좋은 결과를 얻었습니다 .

Closure Compiler는 JavaScript 다운로드 및 실행 속도 향상을위한 도구입니다. 소스 언어에서 기계 코드로 컴파일하는 대신 JavaScript에서 더 나은 JavaScript로 컴파일됩니다. JavaScript를 구문 분석하고 분석하며 데드 코드를 제거하고 남은 것을 다시 작성하고 최소화합니다. 또한 구문, 변수 참조 및 유형을 확인하고 일반적인 JavaScript 함정에 대해 경고합니다.

그것은 구글에 의해 개발되고 Java로 작성되었습니다. 데비안 기반 시스템 용으로 패키지 closure-compiler되어 있으며 우분투 시스템에 쉽게 설치할 수 있습니다. GUI를 사용하지 않기 때문에 더 가벼운 default-jre-headless패키지 가 필요합니다 .

YUI 압축기는 속도가 느리지 만 결과 파일 크기는 (약간) 작습니다. 또한 다른 프로그래밍 언어의 컴파일러와 유사한 유용한 경고 메시지를 인쇄합니다.

설명서 : 시작하기

용법:

closure-compiler --js input.js --js_output_file output.js

프로젝트를 시작하고 개체를 별도의 파일 등으로 확장하면 클로저가 정말 좋습니다. 그러나 기존 프로젝트의 경우 다소 끔찍합니다.
Alexis Wilke

-1

또 다른 옵션은 npxNode.js의 명령 을 사용하는 것 입니다. npx명시 적으로 설치하지 않고 Node.js 패키지의 명령을 실행합니다.

# Minify JS
npx -p uglify-js uglifyjs -o app.min.js app.js common.js

# Minify CSS
npx clean-css-cli -o style.min.css css/bootstrap.css style.css

# Minify HTML
npx html-minifier index-2.html -o index.html --remove-comments --collapse-whitespace

# XML
npx pretty-data-cli --type xml --minify input.xml > input.min.xml
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.