सबसे अच्छा जावास्क्रिप्ट कंप्रेसर क्या उपलब्ध है? मैं एक उपकरण की तलाश में हूँ जो:
- उपयोग में आसान है
- एक उच्च संपीड़न दर है
- विश्वसनीय अंतिम परिणाम बनाएं (कोड को गड़बड़ाना नहीं)
सबसे अच्छा जावास्क्रिप्ट कंप्रेसर क्या उपलब्ध है? मैं एक उपकरण की तलाश में हूँ जो:
जवाबों:
मैंने हाल ही में UglifyJS , एक जावास्क्रिप्ट कंप्रेसर जारी किया है जो जावास्क्रिप्ट में लिखा गया है (NodeJS Node.js प्लेटफ़ॉर्म पर चलता है, लेकिन इसे किसी भी जावास्क्रिप्ट इंजन पर चलाने के लिए आसानी से संशोधित किया जा सकता है, क्योंकि इसके लिए किसी इंटर्न की आवश्यकता नहीं है Node.js
)। यह YUI कंप्रेसर और Google क्लोजर दोनों की तुलना में बहुत तेज है , यह उन सभी लिपियों पर YUI की तुलना में बेहतर है जो मैंने इसका परीक्षण किया था, और यह क्लोजर की तुलना में अधिक सुरक्षित है ("eval" या "with" के साथ व्यवहार करना जानता है)।
व्हाट्सएप हटाने के अलावा, UglifyJS भी निम्नलिखित कार्य करता है:
foo["bar"]
जाता foo.bar
हैपुनश्च: ओह, यह "सुशोभित" भी कर सकता है। ;-)
कुछ वर्षों बाद इस सवाल पर दोबारा गौर करते हुए, UglifyJS , अब तक का सबसे अच्छा विकल्प लगता है।
जैसा कि नीचे कहा गया है, यह NodeJS प्लेटफॉर्म पर चलता है, लेकिन इसे किसी भी जावास्क्रिप्ट इंजन पर चलाने के लिए आसानी से संशोधित किया जा सकता है।
--- नीचे पुराना उत्तर ---
गूगल जारी की क्लोजर संकलक जो के रूप में देखा अब तक के सबसे छोटे फ़ाइलें पैदा किया जा रहा है यहाँ और यहाँ
इससे पहले विभिन्न विकल्प निम्नानुसार थे
मूल रूप से पैकर प्रारंभिक संपीड़न पर एक बेहतर काम करता है, लेकिन अगर आप तार पर भेजने से पहले फाइलों को जिप करने जा रहे हैं (जो आपको करना चाहिए) YUI कंप्रेसर को सबसे छोटा अंतिम आकार मिलता है।
परीक्षण jQuery कोड btw पर किए गए थे।
@ डैनियल जेम्स ने कम्प्रेशर कंप्रेसर में उल्लेख किया है जो पैकर को सर्वश्रेष्ठ संपीड़न में चार्ट का नेतृत्व करता है, इसलिए मुझे लगता है कि यमव
\uxxxx
डिफ़ॉल्ट रूप से स्ट्रिंग में गैर-एससीआई अक्षर को शाब्दिक रूप में परिवर्तित करता है .. उदाहरण के लिए उपयोग करें --charset UTF-8
(यदि आप सुनिश्चित हैं कि आप ब्राउज़र को इसके बारे में किसी तरह जानते हैं)
YUI कंप्रेसर जाने का रास्ता है। इसकी एक महान संपीड़न दर है, अच्छी तरह से परीक्षण किया गया है और कई शीर्ष साइटों के बीच उपयोग में है, और, अच्छी तरह से, व्यक्तिगत रूप से मेरे द्वारा अनुशंसित।
मैंने इसे बिना किसी जावास्क्रिप्ट त्रुटि या हिचकी के अपनी परियोजनाओं के लिए उपयोग किया है। और इसके अच्छे दस्तावेज हैं।
मैंने इसकी सीएसएस संपीड़न क्षमताओं का कभी उपयोग नहीं किया है, लेकिन वे भी मौजूद हैं। सीएसएस संपीड़न बस के रूप में अच्छी तरह से काम करता है।
नोट: हालांकि डीन एडवर्ड्स / पैकर / YUI कंप्रेसर की तुलना में बेहतर संपीड़न दर प्राप्त करता है, मैं इसका उपयोग करते समय कुछ जावास्क्रिप्ट त्रुटियों में भाग गया।
npm install packer
। (= डी
मैं Dojo परियोजना से ShrinkSafe का उपयोग करता हूं - यह असाधारण है क्योंकि यह कोड में प्रतीकों को खोजने और उनके दायरे को समझने आदि से निपटने के लिए वास्तव में एक जावास्क्रिप्ट दुभाषिया ( राइनो ) का उपयोग करता है , जो यह सुनिश्चित करने में मदद करता है कि कोड बाहर आने पर काम करेगा। दूसरे छोर पर, बहुत सारे संपीड़न उपकरणों के विपरीत, जो रेगेक्स का उपयोग करने के लिए एक ही करते हैं (जो उतना विश्वसनीय नहीं है)।
मेरे पास वास्तव में मेरे वर्तमान विज़ुअल स्टूडियो समाधान में एक वेब परिनियोजन परियोजना में एक MSBuild कार्य है जो एक स्क्रिप्ट चलाता है जो बदले में समाधान के JS फाइलों को श्रिंकसेफ़ के माध्यम से चलाता है।
संपादित करें: वैसे, "सर्वश्रेष्ठ" बहस के लिए खुला है, क्योंकि "सर्वश्रेष्ठ" के मानदंड परियोजना की जरूरतों के आधार पर अलग-अलग होंगे। व्यक्तिगत रूप से, मुझे लगता है कि श्रिंकसेफ़ एक अच्छा संतुलन है; कुछ लोगों के लिए जो सबसे छोटे आकार == को सबसे अच्छा मानते हैं, यह अपर्याप्त होगा।
EDIT: यह ध्यान देने योग्य है कि YUI कंप्रेसर राइनो का भी उपयोग करता है।
यदि आप पैकर का उपयोग करते हैं, तो बस 'सिकुड़ा चर' विकल्प पर जाएं और परिणामी कोड को ज़िप करें। आधार 62 विकल्प केवल तभी है जब आपका सर्वर gzipped files नहीं भेज सकता है। पैकर के साथ 'सिकुड़ा हुआ वर्जन' वाईयूआई बेहतर संपीड़न प्राप्त करता है, लेकिन अगर आप कहीं अर्धविराम छोड़ दिया है तो बग का परिचय दे सकते हैं।
बेस 62 मूल रूप से एक गरीब आदमी की गज़िप है, यही वजह है कि बेस 62-एड कोड को जिप्पी करने से आपको सिकुड़न-वार-एड कोड की तुलना में बड़ी फाइलें मिलती हैं।
सिल्वर बुलेट की खोज में, यह सवाल पाया। रूबी ऑन रेल्स के लिए http://github.com/sstephenson/sprockets
bananascript.com मुझे सबसे अच्छा परिणाम देने के लिए इस्तेमाल किया।
KJScompress
http://opensource.seznam.cz/KJScompress/index.html
Kjscompress / csskompress जावास्क्रिप्ट और सीएसएस युक्त फाइलों से गैर-महत्वपूर्ण व्हाट्सएप और टिप्पणियों को हटाने के लिए दो अनुप्रयोगों (kjscompress a csscompress) का सेट है। दोनों जीएनयू / लिनक्स ऑपरेटिंग सिस्टम के लिए कमांड-लाइन एप्लिकेशन हैं।