उपकरण को छोटा करें जिसे टर्मिनल के माध्यम से निष्पादित किया जा सकता है


35

मैं एक उपकरण या कम करें के लिए एक रास्ता (के समान रहा हूँ मेरे कोड कम्प्रेस और इस सवाल मेरे में ढेर पर) सभी कोड की .xml, .css, .htmlऔर .jsफ़ाइलों उबंटू के टर्मिनल के माध्यम से। आखिरकार मैं इस प्रक्रिया की पटकथा पर रोक लगा दूंगा, लेकिन फिलहाल मैं सिर्फ कुछ करना चाहूंगा। वहाँ एक उपकरण है कि मैं टर्मिनल के माध्यम से इन सभी फ़ाइल स्वरूपों को संपीड़ित करने के लिए उपयोग कर सकता हूं?


2
क्या आपने कुछ ऐसा करने की कोशिश की है tar -czvf compressed.tar.gz *.xml *.css *.html *.php?
रोडमैर

1
मैं कोड को ही कंप्रेस करना चाह रहा हूं। CSS
Minify

1
तब मुझे लगता है कि आप कम्प्रेशन के लिए नहीं कह रहे हैं । नियमित फ़ाइलों (संगीत / वीडियो जैसे गैर-मीडिया) पर संपीड़न करके हम ज्यादातर दोषरहित संपीड़न पर विचार करते हैं, लेकिन आप व्हाट्सएप को कम करने का एक तरीका खोज रहे हैं (जिसमें आप यह डेटा खो देते हैं)। और क्योंकि छोटा करना हानिप्रद है, आप डिकम्प्रेस नहीं कर सकते (क्योंकि यह प्रतिवर्ती नहीं है)। मेरे लिए यह "स्पष्ट करता है कि आप क्या पूछ रहे हैं"।
gertvdijk

जवाबों:


43

यह सबसे अच्छा विकल्प नहीं है, लेकिन यह शायद सबसे आसान है। YUI कंप्रेसर को लंबे समय से जावास्क्रिप्ट और सीएसएस के लिए सबसे अच्छा कंप्रेसर माना जाता था, जो अन्य मिनीफायर पर 20-40% सुधार की पेशकश करता था।

तब से इसे Uglify.JS (जो कि ग्रंट शायद सुझाव देगा) जैसी नई परियोजनाओं द्वारा अधिगृहीत किया गया है, लेकिन उबंटू में उठना और चलना अभी भी काफी आसान बात है।

sudo apt-get install yui-compressor

बस। अब आप चला सकते हैं yui-compressor myfile.jsऔर यह अपना जादू चलाएगा , न कि केवल उतना ही, या आसानी से एनओडी / ग्रंट / उगलिफाई + वाईयूआई स्टैक के रूप में।


15
हर कोई जो js या css का उपयोग करता है, वह नोड.जेएस या नोड.जेएस प्रोजेक्ट का उपयोग नहीं कर रहा है। यदि आप ग्रंट का उपयोग करना चाहते हैं तो यह सीखना और कॉन्फ़िगर करना एक और ढांचा है। हाँ ग्रंट शांत है। लेकिन अब एक दिन, हम पहले से ही सीखने के लिए पर्याप्त है इससे पहले कि हम कोडिंग भी शुरू कर सकें। इसलिए नोड / ग्रंट हमेशा सुविधाजनक नहीं होता है। :) मैं खुद युई-कंप्रेसर के आपके सुझाव की कोशिश करने जा रहा हूं।
बिल रोसमस

2
@BillR मैं भावुकता से सहमत हूं, लेकिन जब मेरे पास कोई नोड.जेएस परियोजनाएं नहीं हैं, तो मैं अभी भी एलआरसी और uglify.js जैसी चीजों का उपयोग करता हूं क्योंकि वे नौकरी के लिए सबसे अच्छा साधन हैं । मैं ग्रंट का उपयोग नहीं करता क्योंकि मैंने इसे अपने टूलींग के साथ बदल दिया है, लेकिन वास्तविक काम के लिए, मैंने खुद को कभी भी नोड से बचने के लिए नहीं देखा। यदि आप उद्योग में बने रहना चाहते हैं, तो आपको सर्वोत्तम प्रथाओं के साथ रहना होगा।
ओली

आप यह धारणा बना रहे हैं कि नोड का उपयोग करना सबसे अच्छा अभ्यास है। शायद आपकी दुनिया में जो हर किसी की दुनिया नहीं है।
बिल रोसमस

2
आपको मुझ पर पाँच साल हो गए हैं लेकिन मुझे नहीं पता कि आपकी बात क्या है ... क्या आप अभी भी "DHTML" और पर्ल CGI लिपियों की एक बिट के साथ स्थिर HTML4 का उपयोग कर रहे हैं? अभी भी एएसपी का उपयोग कर रहे हैं? या क्या आपने चीजों को स्विच किया है क्योंकि बेहतर प्रौद्योगिकियों ने खुद को उपलब्ध कराया है? हमें इसमें दो अलग-अलग बिंदु मिले हैं; यह थोड़ा मूर्खतापूर्ण हो रहा है। मुझे परवाह नहीं है कि अगर आपको पीछे हटना पसंद नहीं है, लेकिन मुझे लगता है कि आप यह more-cssसमझ रहे हैं कि एनपीएम पैकेज का उपयोग करना आपके सीएसएस को छोटा करने के लिए यूआई-कंप्रेसर की तुलना में अधिक घुसपैठ है। यह नहीं है। यह सिर्फ एक और आदेश है जो समान कार्य को बेहतर तरीके से करता है।
ओली

1
ध्यान दें कि इस स्थापित के साथ आप भी Openjkd स्थापित करने जा रहे हैं, एक ऐसी चीज जो सिस्टम में कोई नहीं चाहेगा।
वास्तव में 12

12

आप कमांड लाइन से नोड्स और uglify-js के साथ आसानी से js को छोटा कर सकते हैं :

  • साथ uglify-js स्थापित करें npm install uglify-js -g

  • चलाओ uglifyjs app-test.js > app-test.min.js


सीएसएस के लिए मैं स्वच्छ-सीएसएस (शायद npm पर सबसे स्थिर सीएसएस मिनिफ़र)
उदाहरण के उपयोग का सुझाव दूंगा :

cleancss -o public-min.css public.css

जहाँ तक html का संबंध है आमतौर पर minification आमतौर पर उस समय के लायक नहीं होता है जब आप इसे स्थापित करने में निवेश करते हैं, लेकिन मैंने html-minifier की कोशिश की है और यह एक भयानक उपकरण है।

आप जो कुछ भी करते हैं वह सिर्फ यह सुनिश्चित करता है कि आप जो सेवा कर रहे हैं वह आपको गज़ब का लगे।


1
uglify के साथ सीधे स्थापित किया जा सकता हैsudo apt-get install node-uglify
Gery

ध्यान दें कि uglify-js केवल जावास्क्रिप्ट के लिए है, और सीएसएस या अन्य फाइलों के लिए नहीं।
जोस गोमेज़

2
@ जीरी अगर आप भी अपने uglifyसाथ इंस्टॉल करना चाहते हैं , तो रन करेंaptnode-legacysudo apt install node-uglify node-legacy
mxdsp

ध्यान दें कि cleancssCLI उपकरण अब clean-css-cliपैकेज में है।
jbg

7

Minify का उपयोग करें - अन्य सुझावों के विपरीत, यह टूल बहुत अधिक फ़ाइल प्रकारों को छोटा करता है:

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

यह जावास्क्रिप्ट के साथ बहुत खराब काम करता है।
फेडेरिको

2

Php फ़ाइलों को छोटा करने का कोई कारण नहीं है (सिवाय आपके पास बहुत सीमित डिस्क स्थान है और इसके हर बिट का उपयोग करना चाहते हैं)।

यदि आप एक लक्ष्य जोड़ सकते हैं (आप क्या हासिल करना चाहते हैं और क्यों?), तो कोई आपको बेहतर रास्ता दिखा सकता है।

JS और CSS फाइलों को रनटाइम पर छोटा किया जाता है और अधिकांश वेबप्रोजेक्ट में कैश किया जाता है। मिनिफाइ ( https://github.com/mrclay/minify ), एक php "लाइब्रेरी" है, जो ठीक यही करने में सक्षम है। (टर्मिनल से php के साथ भी निष्पादित किया जा सकता है)

लेकिन ध्यान रखें कि एक बड़ी जावास्क्रिप्ट फ़ाइल 5 छोटी फाइलों की तुलना में तेजी से लोड नहीं करती है। यदि आपको इस कथन के लिए एक कारण और एक समाधान की आवश्यकता है, तो http://headjs.com/ पर एक नज़र डालें।

स्रोत आपके साथ हो सकता है ...


1

मैं Grunt.js का उपयोग करने की सलाह दूंगा । यह एक ऑटोमेशन टूल है जिसमें प्लगइन्स के रूप में मिनिफाइज़र उपलब्ध हैं और इसे अपने टर्मिनल में Node.js. के माध्यम से चलाया जा सकता है। यह PHP को छोटा करने के लिए आवश्यक नहीं होना चाहिए क्योंकि सर्वर पर कोड निष्पादित होता है और केवल इसका HTML आउटपुट क्लाइंट को भेजा जाता है।

आप यहां उपलब्ध प्लगइन्स पा सकते हैं


2
ध्यान रखें कि ग्रंट चुनने से सीखने की अवस्था का पता चलता है।
रिक -777

1

क्लोजर कंपाइलर के साथ मेरे अच्छे परिणाम आए हैं ।

क्लोजर कंपाइलर जावास्क्रिप्ट डाउनलोड और तेजी से चलाने के लिए एक उपकरण है। एक स्रोत भाषा से मशीन कोड के संकलन के बजाय, यह जावास्क्रिप्ट से बेहतर जावास्क्रिप्ट को संकलित करता है। यह आपके जावास्क्रिप्ट को पार्स करता है, इसका विश्लेषण करता है, मृत कोड हटाता है और फिर से लिखता है और जो बचा है उसे कम करता है। यह सिंटैक्स, चर संदर्भ और प्रकारों की भी जांच करता है, और सामान्य जावास्क्रिप्ट नुकसान के बारे में चेतावनी देता है।

यह Google द्वारा विकसित और जावा में लिखा गया है। यह डेबियन-आधारित सिस्टम के लिए पैक किया गया है closure-compilerऔर उबंटू सिस्टम पर आसानी से स्थापित है। चूंकि यह GUI का उपयोग नहीं करता है, इसलिए इसे अधिक हल्के default-jre-headlessपैकेज की आवश्यकता होती है ।

यह धीमा है कि YUI कंप्रेसर लेकिन परिणामी फ़ाइल आकार (थोड़ा) छोटा है। यह अन्य प्रोग्रामिंग भाषाओं के लिए संकलक के समान उपयोगी चेतावनी संदेश भी प्रिंट करता है।

प्रलेखन: शुरू करना

उपयोग:

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

बंद करना वास्तव में अच्छा है यदि आप इसके साथ अपनी परियोजना शुरू करते हैं और अपनी वस्तुओं को अलग-अलग फ़ाइलों आदि में विस्तारित करते हैं, लेकिन मौजूदा परियोजना के लिए, यह बहुत भयानक है।
एलेक्सिस विल्के

-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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.