JavaScript मिनिफ़ायर

JavaScript पेस्ट करें और उसे Terser से छोटा करें: बेकार कोड हटता है, नाम छोटे होते हैं और व्हाइटस्पेस गायब हो जाता है। सिंटैक्स एरर ठीक लाइन और कॉलम बताते हैं।

आपके ब्राउज़र में चलता हैसाइन-अप ज़रूरी नहींकुछ भी अपलोड नहीं होता

मिनिफ़ाइड आउटपुट

JavaScript मिनिफ़ायर का उपयोग कैसे करें

  1. अपना JavaScript पेस्ट करें या कोई .js फ़ाइल खोलें।
  2. ऑप्शन चुनें: नाम छोटे करें लोकल वेरिएबल छोटे करता है, कंप्रेस कोड को छोटे समतुल्य रूप में दोबारा लिखता है, ES मॉड्यूल टॉप-लेवल import/export चालू करता है।
  3. वह ECMAScript टारगेट चुनें जो आपके यूज़र्स के ब्राउज़र सपोर्ट करते हैं। ES2020 सभी आधुनिक ब्राउज़र के लिए सुरक्षित है।
  4. आउटपुट के नीचे साइज़, बचत और gzip का अनुमान देखें।
  5. मिनिफ़ाइड कोड कॉपी करें या output.min.js के रूप में डाउनलोड करें।

JavaScript मिनिफ़ायर क्या करता है?

मिनिफ़िकेशन JavaScript को उसका काम बदले बिना छोटा बनाता है। यह टूल Terser इस्तेमाल करता है, जो webpack, Vite और Rollup के पीछे का मिनिफ़ायर है, और तीन तरह के बदलाव करता है:

  • व्हाइटस्पेस और कमेंट हटाना: इंडेंटेशन, न्यूलाइन और कमेंट की JavaScript इंजन को ज़रूरत नहीं होती।
  • Mangling: subtotal जैसे लोकल वेरिएबल और फ़ंक्शन पैरामीटर के नाम एक अक्षर बन जाते हैं। ग्लोबल नाम और ऑब्जेक्ट प्रॉपर्टी को छुआ नहीं जाता ताकि आपका पब्लिक API काम करता रहे।
  • कंप्रेशन: स्थिर एक्सप्रेशन की गणना पहले ही कर ली जाती है, न पहुँचने वाला कोड हटाया जाता है, if स्टेटमेंट ternary बन जाते हैं और छोटे फ़ंक्शन इनलाइन किए जाते हैं।

मिनिफ़ाई बनाम gzip: क्या दोनों चाहिए?

हाँ। Gzip और Brotli नेटवर्क पर दोहराए जाने वाले बाइट पैटर्न को कंप्रेस करते हैं, जबकि मिनिफ़िकेशन वे बाइट हटाता है जिन्हें ब्राउज़र को वरना डाउनलोड, पार्स और कंपाइल करना पड़ता। एक आम स्क्रिप्ट मिनिफ़िकेशन से 40–60% और फिर gzip से 60–70% और छोटी होती है। यहाँ दिखाया गया gzip साइज़ इस बात का अच्छा अनुमान है कि आपका सर्वर असल में कितना भेजेगा।

लाइसेंस कमेंट रखना

कई ओपन-सोर्स लाइसेंस (MIT, BSD, Apache) चाहते हैं कि कॉपीराइट नोटिस कोड के साथ रहे। परंपरा के अनुसार, /*! से शुरू होने वाले या @license या @preserve वाले कमेंट लाइसेंस कमेंट रखें चालू होने पर रखे जाते हैं।

कब हाथ से मिनिफ़ाई न करें

अगर आपका प्रोजेक्ट पहले से कोई bundler इस्तेमाल करता है, तो उसे प्रोडक्शन बिल्ड मिनिफ़ाई करने दें और डिबगिंग के लिए source map बनाने दें। ऑनलाइन मिनिफ़ायर एक बार की स्क्रिप्ट, CMS या tag manager के स्निपेट, bookmarklet और यह जाँचने के लिए आदर्श है कि कोड का कोई हिस्सा कितना छोटा हो सकता है।

अक्सर पूछे जाने वाले सवाल

क्या मेरा कोड किसी सर्वर पर अपलोड होता है?
नहीं। Terser आपके ब्राउज़र टैब के अंदर चलता है, इसलिए प्रोप्राइटरी कोड कभी आपकी मशीन से बाहर नहीं जाता।
क्या मिनिफ़िकेशन मेरा कोड तोड़ सकता है?
Terser सिर्फ़ वही बदलाव करता है जो मान्य JavaScript का व्यवहार बिल्कुल वैसा ही रखते हैं। जो कोड Function.prototype.toString() पर या eval के ज़रिए लोकल वेरिएबल के नामों पर निर्भर है, वह प्रभावित हो सकता है; ऐसे में नाम छोटे करें बंद कर दें।
क्या यह async/await, classes और optional chaining जैसा आधुनिक सिंटैक्स सपोर्ट करता है?
हाँ। Terser ES2022+ सिंटैक्स पार्स करता है। टारगेट सेटिंग सिर्फ़ यह तय करती है कि आउटपुट कौन-सा सिंटैक्स इस्तेमाल कर सकता है; यह नए फ़ीचर को पुराने में transpile नहीं करती।
minify और uglify में क्या अंतर है?
दोनों का मतलब एक ही है। UglifyJS क्लासिक टूल था; Terser उसका मेंटेन किया जाने वाला fork है जिसमें पूरा ES2015+ सपोर्ट है।

संबंधित टूल्स