Minifier

JS / CSS Minifier + Beautifier

JavaScript یا CSS را paste کنید — Minify را بزنید تا فاصله‌ها و کامنت‌ها برای production حذف شوند، یا Beautify را بزنید تا کد obfuscate / یک‌خطی به شکلی خوانا re-indent شود. تشخیص خودکار زبان، همه در مرورگر شما.

محافظه‌کارانه. ما کامنت‌ها را حذف می‌کنیم و فاصله‌ها را جمع می‌کنیم، اما شناسه‌ها را mangle نمی‌کنیم (foo همان foo می‌ماند)، dead-code elimination انجام نمی‌دهیم و دستورات را reorder نمی‌کنیم. هدف، کاهش حجم ایمن و قابل پیش‌بینی است. اگر فشرده‌سازی حداکثری می‌خواهید، خروجی را به‌عنوان مرحلهٔ نهایی از Terser یا esbuild عبور دهید.

خیر. tokeniser از رشته، template literal و regex آگاه است. فاصله‌ها و دنباله‌های شبه‌کامنت داخل "..."، '...'، \`...\` یا /regex/flags عیناً حفظ می‌شوند. کامنت‌های license banner (/*! ... */) نیز به‌طور پیش‌فرض حفظ می‌شوند.

ورودی
خروجی

ساخته‌شده برای جریان‌های کاری روزمرهٔ JS + CSS

Minify برای production، beautify برای دیباگ — به‌علاوهٔ چند جزئیات کوچک که استفاده از آن را واقعاً لذت‌بخش می‌کند.

دو زبان، دو تبدیل

JavaScript یا CSS، minify یا beautify، در یک ابزار. تشخیص خودکار زبان را بر اساس نشانه‌های محتوا انتخاب می‌کند؛ یا با dropdown Language آن را بازنویسی کنید.

Minify محافظه‌کارانه

ما کامنت‌ها را حذف می‌کنیم و فاصله‌ها را جمع می‌کنیم — اما هرگز شناسه‌ها را mangle نمی‌کنیم، هرگز ترتیب را تغییر نمی‌دهیم و هرگز inline نمی‌کنیم. رشته‌ها، template literalها، regex و کامنت‌های license-banner (/*! ... */) عیناً حفظ می‌شوند. خروجی بایت‌به‌بایت ایمن است.

Beautify کد obfuscate / minify شده

یک bundle یک‌خطی minify شده را paste کنید، Beautify را بزنید، یک نسخهٔ خوانا و indent شده دریافت کنید — برای بررسی اسکریپت‌های شخص ثالث، دیباگ stack trace های production یا یادگیری از کدهای هوشمند مفید است.

تفاوت حجم در یک نگاه

هر minify اختلاف بایت ورودی → بایت خروجی و درصد صرفه‌جویی را نشان می‌دهد. دیگر لازم نیست حدس بزنید آیا bundle CSS شما واقعاً کوچک‌تر می‌شود.

حریم خصوصی بر اساس طراحی

کد شما روی دستگاه شما باقی می‌ماند. tokeniser، minifier و beautifier همه به‌صورت محلی به‌عنوان JavaScript اجرا می‌شوند. DevTools → Network را باز کنید و صفر درخواست خروجی را تأیید کنید.

کوچک + سریع

JavaScript خالص، بدون runtime فریم‌ورک. بارگذاری اولیه کمتر از ۲۵ کیلوبایت gzip شده. یک bundle ۲۰۰ کیلوبایتی JS در کمتر از ۵۰ میلی‌ثانیه روی یک لپ‌تاپ معمولی minify می‌شود.

چگونه JS / CSS را minify یا beautify کنیم

سه گام از کد خام تا خروجی آمادهٔ production.

  1. 1

    کد خود را paste کنید

    JavaScript یا CSS را در پنل Input رها کنید. ابزار به‌طور خودکار تشخیص می‌دهد کدام زبان است — یا اگر منبع مبهم است (مثلاً یک قطعهٔ کوچک)، از dropdown Language انتخاب کنید.

  2. 2

    Minify یا Beautify را انتخاب کنید

    Minify را برای حذف کامنت‌ها و فاصله‌ها برای production بزنید. Beautify را برای گسترش کد obfuscate / یک‌خطی با تورفتگی مناسب بزنید. ابزار با هر کلیک فوراً دوباره اجرا می‌شود — برای مقایسه بین دو حالت رفت و برگشت کنید.

  3. 3

    کپی یا دانلود

    از آیکون کپی برای انتقال خروجی به کلیپ‌بورد استفاده کنید، یا از آیکون دانلود برای ذخیره به‌صورت output.min.js / output.min.css / output.beauty.js / output.beauty.css. تفاوت حجم (بایت ورودی → خروجی، درصد صرفه‌جویی) دقیقاً نشان می‌دهد چقدر فشرده کرده‌اید.

ساخته‌شده برای کار روزمرهٔ web-dev

چهار سناریوی رایج که در آن یک ابزار مرورگری با اولویت حریم خصوصی، بهتر از paste کردن کد در یک minifier آنلاین تصادفی است.

اسکریپت‌های inline در ایمیل HTML یا سایت‌های ایستا

صفحات ایستا، قالب‌های ایمیل تراکنشی و قطعه‌های embed اغلب نیاز به یک اسکریپت یا stylesheet inline یک‌خطی دارند. منبع خوانای خود را وارد کنید، minify کنید، نتیجه را در تگ <style> یا <script> paste کنید — تمام.

خواندن یک اسکریپت شخص ثالث که به آن اعتماد ندارید

پیکسل‌های vendor، beacon های شبکه‌های تبلیغاتی، افزونه‌های مشکوک — همه به‌صورت یک‌خطی minify شده ارسال می‌شوند. paste کنید، Beautify را بزنید و قبل از embed کردن آن‌ها در production، بخوانید واقعاً چه کار می‌کنند.

بررسی سریع CSS برای یک تم CMS

تم‌های WordPress / Shopify / Ghost / Webflow با CSS متورم ارسال می‌شوند. stylesheet را paste کنید، beautify کنید، قواعد تکراری و selector های استفاده‌نشده را پیدا کنید. وقتی تمام شد، نسخهٔ تمیزشده را دوباره به یک خط minify کنید.

کد حساس که نمی‌تواند به سرویس شخص ثالث برود

اسکریپت‌های داخلی حاوی کلیدهای API، اسرار، منطق تجاری — هر چیزی که نمی‌توانید در یک minifier ابری paste کنید. ابزار صرفاً مرورگری هر بایت را روی لپ‌تاپ شما نگه می‌دارد. DevTools → Network را باز کنید و تأیید کنید چیزی خارج نمی‌شود.

۱۰۰٪ خصوصی — در مرورگر شما اجرا می‌شود

کد شما هرگز از دستگاهتان خارج نمی‌شود. DevTools → Network را باز کنید و در حین minify یا beautify صفر درخواست خروجی خواهید دید.

  • tokeniser، minifier و beautifier همه به‌صورت JavaScript روی دستگاه شما اجرا می‌شوند — بدون Terser، بدون esbuild، بدون API شخص ثالث.
  • کامنت‌های license-banner (/*! ... */) به‌طور پیش‌فرض حفظ می‌شوند تا به‌طور تصادفی attribution مورد نیاز یک کتابخانهٔ open-source را حذف نکنید.
  • بدون login، بدون telemetry روی محتوای کد. ما فقط از یک کوکی برای وضعیت رضایت کوکی و یکی برای تنظیم زبان استفاده می‌کنیم.

راهنماهای مرتبط

مطالب دستچین‌شده دربارهٔ minify کردن JS / CSS، فرمت‌بندی کد و انضباط در حجم bundle.

پرسش‌های متداول

Minifier چقدر تهاجمی است؟

محافظه‌کارانه. ما کامنت‌ها را حذف می‌کنیم و فاصله‌ها را جمع می‌کنیم، اما شناسه‌ها را mangle نمی‌کنیم (foo همان foo می‌ماند)، dead-code elimination انجام نمی‌دهیم و دستورات را reorder نمی‌کنیم. هدف، کاهش حجم ایمن و قابل پیش‌بینی است. اگر فشرده‌سازی حداکثری می‌خواهید، خروجی را به‌عنوان مرحلهٔ نهایی از Terser یا esbuild عبور دهید.

آیا رشته‌ها، template literalها یا regex من خراب می‌شوند؟

خیر. tokeniser از رشته، template literal و regex آگاه است. فاصله‌ها و دنباله‌های شبه‌کامنت داخل "..."، '...'، \`...\` یا /regex/flags عیناً حفظ می‌شوند. کامنت‌های license banner (/*! ... */) نیز به‌طور پیش‌فرض حفظ می‌شوند.

آیا minifier سی‌اس‌اس قواعد تو در تو و کوئری‌های @media را پشتیبانی می‌کند؟

بله. قواعد تو در تو، @media، @keyframes، @font-face، @layer، @container، @supports و CSS custom properties (--var) همه به‌طور ایمن minify می‌شوند. لیست‌های selector با کاما حفظ می‌شوند؛ فقط فاصله‌های بی‌اهمیت جمع می‌شوند.

آیا می‌توانم یک bundle minify شدهٔ یک‌خطی را beautify کنم؟

Beautify دقیقاً برای همین است. هر JS یا CSS minify شده‌ای را paste کنید، Beautify را بزنید و نسخهٔ re-indent شده‌ای دریافت کنید. beautifier معنا را تغییر نمی‌دهد — فقط بر اساس عمق براکت‌ها newline و indent اضافه می‌کند. روی هر ورودی معتبری بدون توجه به نحوهٔ minify شدنش کار می‌کند.

آیا چیزی به سرور شما ارسال می‌شود؟

خیر. tokeniser، minifier و beautifier همه در JavaScript روی دستگاه شما اجرا می‌شوند. DevTools → Network را باز کنید و در حین minify یا beautify صفر درخواست خروجی خواهید دید. کلیدهای API، اسرار یا کدهای اختصاصی را paste کنید — هیچ چیز از لپ‌تاپ شما خارج نمی‌شود.