UTILS.
۱۰۰٪ در مرورگر
🗜️

فشرده‌ساز JavaScript

با حذف کامنت‌ها و فضای خالی غیرضروری، JavaScript را کوچک کنید در حالی که رشته‌ها، template literalها و regex را ایمن حفظ می‌کند — به‌صورت محلی در مرورگر شما اجرا می‌شود.

— خروجی اینجا نمایش داده می‌شود —

درباره این ابزار

فشرده‌ساز JavaScript اندازه یک اسکریپت را با حذف کامنت‌ها و جمع کردن فضای خالی و خطوط جدید غیرضروری کاهش می‌دهد، سپس صرفه‌جویی بایت را گزارش می‌کند. راهی سریع و بدون وابستگی برای کوچک کردن یک اسکریپت یا قطعه کوچک پیش از چسباندن آن در جایی حساس به اندازه است. تمام پردازش محلی است — کد صرفاً به‌عنوان متن در نظر گرفته می‌شود و هرگز اجرا نمی‌شود، بنابراین نه eval هست و نه چیزی بارگذاری می‌شود.

این یک فشرده‌ساز محافظه‌کارانه و آگاه از توکن است. کد منبع را به توکن‌ها اسکن می‌کند و به‌درستی از داخل رشته‌ها، template literalها، عبارات باقاعده و کامنت‌ها عبور می‌کند، بنابراین محتوای آن‌ها بایت‌به‌بایت حفظ می‌شود. کامنت‌ها حذف می‌شوند (یا با کلید تعویض نگه داشته می‌شوند)، و رشته‌های فضای خالی همه‌جا حذف می‌شوند مگر جایی که یک فاصله واقعاً لازم است — بین دو توکن شناسه/عدد/کلمه کلیدی (بنابراین 'return a' هرگز به 'returna' تبدیل نمی‌شود) یا بین دو کاراکتر عملگر که در غیر این صورت با هم ادغام می‌شوند (بنابراین 'a + +b' فاصله‌اش را حفظ می‌کند). یک regex literal بعد از یک کلمه کلیدی نیز فاصله جداکننده‌اش را نگه می‌دارد.

چون درخت نحو انتزاعی را بازسازی نمی‌کند، متغیرها را تغییر نام نمی‌دهد و حذف کد مرده انجام نمی‌دهد — فقط آنچه را که به‌طور اثبات‌پذیر ایمن برای حذف است حذف می‌کند. همچنین خطوط جدید را جمع می‌کند، بنابراین کدی که به درج خودکار سمی‌کالن در سراسر شکست خطوط تکیه دارد باید از قبل از سمی‌کالن‌های صریح استفاده کند. پنل اندازه اصلی، اندازه فشرده و درصد صرفه‌جویی‌شده را نشان می‌دهد.

پرسش‌های پرتکرار

آیا متغیرها را تغییر نام می‌دهد یا منطق را فشرده می‌کند؟
خیر. این یک فشرده‌ساز محافظه‌کارانه فضای خالی و کامنت است، نه یک فشرده‌ساز کامل. نام متغیرها را دستکاری نمی‌کند، ثابت‌ها را جمع نمی‌کند و کد مرده را حذف نمی‌کند — فقط کامنت‌ها و فضای خالی غیرضروری را حذف می‌کند، بنابراین خروجی برای مقایسه با کد منبع آسان می‌ماند.
آیا رشته‌ها و regex من ایمن هستند؟
بله. فشرده‌ساز کد منبع را توکن‌بندی می‌کند و داخل رشته‌ها، template literalها و عبارات باقاعده را دقیقاً حفظ می‌کند. فاصله‌ها و متن شبیه‌کامنت داخل آن‌ها هرگز دست نمی‌خورند، بنابراین کد فشرده‌شده یکسان رفتار می‌کند.
آیا فشرده‌سازی می‌تواند کد من را خراب کند؟
خطوط جدید را جمع می‌کند، بنابراین اسکریپت‌هایی که به درج خودکار سمی‌کالن در سراسر شکست خطوط وابسته‌اند می‌توانند معنایشان تغییر کند. اگر کد شما از قبل از سمی‌کالن‌های صریح استفاده می‌کند — مانند اکثر کدها — خروجی معادل است. در صورت شک، نتیجه فشرده‌شده را آزمایش کنید.
اعداد اندازه چه معنایی دارند؟
بعد از فشرده‌سازی، این ابزار کد منبع اصلی و فشرده‌شده را در بایت‌های UTF-8 اندازه می‌گیرد و هر دو را به‌علاوه درصد کاهش نشان می‌دهد، بنابراین می‌توانید دقیقاً ببینید که اسکریپت چقدر کوچک‌تر شد.

ابزارهای بیشتر