Wakaru: ابزار آنمینیفای و تجزیه باندلهای جاوااسکریپت
خلاصهٔ کاملتر
وقتی کد جاوااسکریپت توی محیط پروداکشن قرار میگیره، معمولاً سه مرحله پردازش روش انجام شده: باندلرها ماژولهای مختلف رو توی یه فایل ترکیب میکنن، ترنسپایلرها سینتکس مدرن رو به نسخههای قدیمیتر تبدیل میکنن، و مینیفایرها اسم متغیرها رو کوتاه میکنن و کنترل فلو رو فشرده میسازن. نتیجه؟ کدی که خواندنش تقریباً غیرممکنه.
Wakaru یه ابزار متنباز هست که هر سه این تبدیلها رو با یه دستور معکوس میکنه. برای مثال، این کد مینیفایشده:
var a = void 0;
var b = !1;
var c = x === null || x === void 0 ? void 0 : x.bar;
exports.greet = function(e) { return "Hello, ".concat(e, "!"); };بعد از پردازش با Wakaru به این شکل در میاد:
let a;
const b = false;
const c = x?.bar;
export const greet = (e) => `Hello, ${e}!`;Wakaru از باندلرهای محبوب مثل webpack 4/5، esbuild، Bun و Browserify پشتیبانی میکنه و همچنین از ابزارهای ترنسپایل و مینیفای مثل Terser، Babel، SWC و TypeScript هم میتونه کدها رو ریکاور کنه.
یکی از قابلیتهای جالبش اینه که سه سطح بازنویسی داره: minimal برای وقتی که میخوای حداقل تغییر رو داشته باشی (مثلاً برای آدیت کد)، standard که حالت پیشفرضه و تعادل خوبی بین خوانایی و صحت داره، و aggressive که بیشترین خوانایی رو میده ولی ممکنه رفتار بعضی edge caseها رو تغییر بده.
پشتیبانی از source map هم یه ویژگی مهمه — با دادن فایل source map به Wakaru، اسم متغیرهای اصلی ریکاور میشن و importهای تکراری حذف میشن. حتی میشه فایلهای اصلی که توی source map جاسازی شدن رو مستقیم روی دیسک نوشت.
نکات کلیدی:
- معکوسسازی مینیفای، ترنسپایل و باندل با یه دستور واحد
- پشتیبانی از webpack، esbuild، Bun، Browserify، Terser، Babel، SWC و TypeScript
- سه سطح بازنویسی:
minimal،standardوaggressive - پشتیبانی از source map برای ریکاور اسم متغیرها
- قابل نصب با
npm install -g @wakaru/cliیا از طریق باینریهای آماده




