Loading…

درباره مینیفایر جاوااسکریپت آنلاین

بسته‌های جاوااسکریپت کوچک‌تر را در ثانیه‌ها ارسال کنید ⚡. این مینیفایر جاوااسکریپت آنلاین، کد JS شما را به AST تجزیه کرده، نظرات و فاصله‌های سفید غیرضروری را حذف می‌کند و مراحل فشرده‌سازی ایمن را اعمال می‌کند. ایده‌آل برای کوچک‌سازی اسکریپت‌های مستقل، رفع سریع مشکلات، قطعات کد مدیریت تگ و بررسی‌های پیش از استقرار. همه چیز ۱۰۰٪ در سمت کلاینت اجرا می‌شود – کد شما هرگز مرورگر را ترک نمی‌کند.

ویژگی‌های کلیدی این مینیفایر جاوااسکریپت

  • فشرده‌سازی فوری JS در مرورگر (بدون آپلود فایل روی سرورها)
  • حذف نظرات و فشرده‌سازی فضاهای خالی و خطوط جدید غیرضروری
  • فشرده‌سازی مبتنی بر AST مشابه Terser (تا کردن ثابت‌ها، حذف کد مرده در شرایط ایمن)
  • تغییر نام شناسه‌ها به صورت اختیاری و پرچم‌های پیشرفته از طریق API یا یکپارچه‌سازی ساخت
  • با جاوااسکریپت مدرن (ES2015+)، اسکریپت‌های کلاسیک و خروجی ماژول ساده کار می‌کند
  • کپی یا دانلود یک‌کلیکی جاوااسکریپت مینیفای شده
  • از مؤلفه اصلی مشابه فرمت‌دهنده جاوااسکریپت استفاده می‌کند: با یک عمل بین خروجی فرمت شده و مینیفای شده جابجا شوید
  • پردازش ۱۰۰٪ سمت کلاینت برای حداکثر حریم خصوصی

🛠️ نحوه مینیفای کردن جاوااسکریپت for javascript-minifier

1

جاوااسکریپت خود را جایگذاری یا آپلود کنید

یک فایل .js/.mjs را در ویرایشگر رها کنید یا مستقیماً جاوااسکریپت خود را جایگذاری کنید. این ابزار برای اسکریپت‌های تکی، فایل‌های کمکی و بسته‌های کوچک ایده‌آل است.

2

حالت مینیفیکیشن را انتخاب کنید

از مؤلفه مشابه فرمت‌دهنده جاوااسکریپت استفاده کنید: به عمل مینیفای سوئیچ کنید تا به جای کد فرمت شده، خروجی فشرده دریافت کنید.

3

مینیفایر را اجرا کنید

کد شما به AST تجزیه می‌شود، نظرات و فضاهای خالی اضافی حذف می‌شوند و پاس‌های فشرده‌سازی ایمن برای کاهش اندازه بسته اعمال می‌شوند.

4

نتیجه را کپی یا دانلود کنید

جاوااسکریپت مینیفای شده را از ویرایشگر خروجی کپی کنید یا آن را به عنوان فایل .min.js دانلود کرده و در HTML، CDN یا خروجی ساخت خود قرار دهید.

مشخصات فنی

تبدیل‌های اصلی (پیش‌فرض‌های ایمن)

پیش‌فرض‌های محافظه‌کارانه برای حفظ رفتار زمان اجرا در حالی که اندازه کد را به طور قابل توجهی کاهش می‌دهند طراحی شده‌اند.

عملیاتاعمال شدهیادداشت‌ها
حذف نظرات خطی و بلوکینظرات مجوز (/*! ... */) می‌توانند از طریق پیکربندی/API حفظ شوند
فشرده‌سازی فضاهای خالی و خطوط جدیدفضاهای خالی در جایی که از نظر معنایی ایمن است نرمال‌سازی می‌شوند؛ محتوای رشته‌ها و عبارات باقی می‌ماند
تا کردن ثابت‌ها و درون‌ریزی سادهفقط زمانی که نتیجه به طور قابل اثبات معادل باشد
حذف کد مردهشاخه‌هایی را حذف می‌کند که پس از انتشار ثابت‌ها غیرقابل دسترس هستند
تغییر نام شناسه‌ها✅ اختیارینام متغیرها و توابع را کوتاه می‌کند؛ قابل پیکربندی از طریق گزینه‌های پیشرفته/API
حذف کمک‌های دیباگ (console/debugger)✅ اختیاریمی‌توان فعال شود وقتی که به خروجی کنسول در محیط تولید وابسته نیستید

کنترل‌های ایمنی و سازگاری

گزینه‌های پیشرفته (عمدتاً از طریق ابزارهای ساخت/API در دسترس) به تنظیم میزان تهاجمی بودن فشرده‌سازی کمک می‌کنند.

گزینهپیش‌فرضتوضیح
هدف ecma2020سینتکس خروجی و برخی قوانین فشرده‌سازی را کنترل می‌کند
ماژول در مقابل اسکریپتاسکریپتبهینه‌سازی‌های ماژول/سطح بالا را برای بسته‌های ESM فعال کنید
keep_fnames / keep_classnamesfalseنام‌ها را برای ردگیری بهتر پشته یا چارچوب‌های DI حفظ می‌کند
safari10 / legacy quirksخاموشفقط هنگام هدف‌گیری موتورهای قدیمی خاص فعال کنید
toplevelfalseاجازه حذف اتصالات سطح بالای استفاده نشده را برای تکان دادن درخت پیشرفته می‌دهد

کاهش اندازه معمول

صرفه‌جویی بسته به قالب‌بندی اصلی، تراکم نظرات و میزان کد مرده موجود متفاوت است.

سبک ورودیفقط فشرده‌سازیفشرده‌سازی + تحریف (تهاجمی)
کامنت‌گذاری و فاصله‌گذاری سنگین۳۵٪–۵۵٪۵۰٪–۷۰٪
کد برنامه با قالب‌بندی متوسط۲۰٪–۳۵٪۳۵٪–۵۵٪
کد از قبل فشرده۵٪–۱۵٪۱۰٪–۲۵٪

جایگزین‌های CLI برای ساخت‌های تولید

برای برنامه‌های کامل و پروژه‌های چند فایلی، فشرده‌سازی را در خط لوله CI/CD خود ادغام کنید.

Node.js

Terser (حالت رایج)

npx terser src/app.js -o dist/app.min.js -c ecma=2020,passes=2 -m

دو مرحله فشرده‌سازی به همراه تحریف شناسه‌ها برای کاهش قوی حجم.

Terser با نام‌های رزرو شده و drop_console

npx terser src/app.js -o dist/app.min.js -c passes=2,drop_console=true -m reserved=["React","ReactDOM"] --keep-fnames

محافظت از متغیرهای سراسری مهم، حذف فراخوانی‌های کنسول و حفظ نام توابع برای دیباگ.

Linux/macOS/Windows

esbuild (بسیار سریع)

npx esbuild src/app.js --minify --target=es2018 --outfile=dist/app.min.js

بسته‌بندی و فشرده‌سازی در یک مرحله واحد و فوق‌العاده سریع.

SWC (مبتنی بر Rust)

npx swc src -d dist --minify

ترنسپایل و فشرده‌سازی با یک موتور Rust با کارایی بالا.

موارد استفاده رایج

عملکرد وب و Core Web Vitals

  • کاهش حجم انتقال جاوااسکریپت برای LCP و TTI سریع‌تر
  • حذف کامنت‌ها و لاگ‌های دیباگ قبل از استقرار
  • کوچک‌سازی باندل‌های سمت کلاینت قبل از فشرده‌سازی gzip/brotli
/* کامنت مخصوص ساخت که در خروجی فشرده حذف می‌شود */

اتوماسیون CI/CD و انتشار

  • فشرده‌سازی JS به عنوان آخرین مرحله در خط لوله ساخت شما
  • آماده‌سازی باندل‌های کوچک و سازگار با کش برای CDNها
  • تولید منابع آماده تولید همراه با فشرده‌سازهای HTML/CSS

ویجت‌ها، تعبیه‌ها و آزمایش‌ها

  • ارسال قطعه کدهای فشرده از طریق مدیران تگ
  • تعبیه ویجت‌های فشرده در صفحات شخص ثالث
  • آزمایش استراتژی‌های مختلف فشرده‌سازی روی اسکریپت‌های حیاتی

❓ Frequently Asked Questions

آیا فشرده‌سازی جاوااسکریپت نحوه اجرای کد من را تغییر می‌دهد؟

با تنظیمات پیش‌فرض ایمن، رفتار زمان اجرا باید یکسان باقی بماند. گزینه‌های تهاجمی مانند بهینه‌سازی سطح بالا، تغییر نام شناسه‌ها یا حذف فراخوانی‌های کنسول می‌توانند بر رفتار تأثیر بگذارند اگر کد شما به نام‌ها، اثرات جانبی یا لاگینگ وابسته باشد. همیشه یک نسخه فشرده‌نشده نگه دارید و روی نسخه‌های فشرده تست اجرا کنید.

آیا این ابزار مستقیماً TypeScript یا JSX را مدیریت می‌کند؟

فشرده‌ساز هدفش جاوااسکریپت ساده است. برای TypeScript یا JSX، ابتدا به جاوااسکریپت تبدیل کنید (از طریق SWC، esbuild یا Babel) و سپس کد JS تولید شده را فشرده کنید.

آیا جاوااسکریپت من به سرور آپلود می‌شود؟

خیر. تمام پردازش به طور کامل در مرورگر شما با استفاده از کد سمت کلاینت انجام می‌شود. کد منبع به هیچ سرور راه‌داری ارسال نمی‌شود که برای اسکریپت‌های خصوصی/انحصاری ایده‌آل است.

فایل جاوااسکریپت من چقدر می‌تواند بزرگ باشد؟

برای تجربه کاربری روان مرورگر، فایل‌های تا حدود ۱ مگابایت را در این ابزار آنلاین توصیه می‌کنیم. بسته‌های بزرگتر و اجراهای مکرر فشرده‌سازی بهتر است توسط ابزارهای CLI که در خط لوله ساخت شما یکپارچه شده‌اند مدیریت شوند.

تفاوت قالب‌بندی و فشرده‌سازی چیست؟

قالب‌بندی کد را خوانا‌تر می‌کند (تورفتگی و فاصله‌گذاری یکنواخت). فشرده‌سازی کد را کوچک‌تر می‌کند (حذف فضاهای خالی، نظرات و کدهای اضافی). این ابزار مؤلفه اصلی یکسانی برای هر دو به اشتراک می‌گذارد: از عمل قالب‌بندی برای خوانایی و از عمل فشرده‌سازی برای بسته‌های تولید استفاده کنید.

Pro Tips

Best Practice

در باندلر خود NODE_ENV=production (یا معادل آن) را تعریف کنید تا هرس کد مرده اضافی در بسیاری از کتابخانه‌ها فعال شود.

Best Practice

منابع فشرده‌نشده (و برای برنامه‌های بزرگ، نقشه‌های منبع) را در کنترل نسخه نگه دارید و فقط دارایی‌های فشرده شده را در تولید سرو کنید.

Best Practice

هنگام تغییر نام از نام‌های رزرو شده استفاده کنید تا APIهای عمومی متصل به window یا globalThis محافظت شوند.

Best Practice

فشرده‌سازی را با gzip یا brotli در سطح CDN یا سرور ترکیب کنید تا صرفه‌جویی اندازه مضاعف به دست آورید.

Additional Resources

Other Tools