Aube: مدیریت پکیج Node.js با سرعت دیوانهوار
خلاصهٔ کاملتر
Aube (تلفظ: «اوب») یه پکیج منیجر تازهنفس برای Node.js هست که نسخه ۱.۵.۰ش به تازگی منتشر شده. هدف اصلیش اینه که بدون دردسر وارد پروژههای جاوااسکریپت و تایپاسکریپت موجود بشه و کار رو از همون لحظه اول شروع کنه، بدون اینکه بخواد همه چیز رو از صفر تنظیم کنی.
از نظر سرعت، Aube ادعاهای بزرگی داره. در بنچمارک warm install (یعنی وقتی پکیجها قبلاً دانلود شدن ولی node_modules وجود نداره) ۹.۲ برابر سریعتر از pnpm و ۲.۷ برابر سریعتر از Bun عمل میکنه. بنچمارکهای دیگهای هم برای حالتهای cold cache و CI در نظر گرفته شده.
یکی از بزرگترین مشکلاتی که Aube حل میکنه، تکراری بودن فایلهای پکیجهاست. npm برای هر پروژه یه کپی کامل از همه چیز نگه میداره، اما Aube یه استور سراسری content-addressable داره. یعنی اگه ۳ تا پروژه داشته باشی که همه از React، Vite، TypeScript و Playwright استفاده میکنن، اون فایلهای سنگین فقط یه بار روی دیسک ذخیره میشن. نتیجه؟ تا ۹۰٪ صرفهجویی در فضای دیسک نسبت به npm.
یه دغدغه رایج موقع تغییر پکیج منیجر اینه که باید lockfile رو مایگریت کنی و کل تیم رو هم باهات همراه کنی. Aube این مشکل رو حل کرده، چون میتونه yarn.lock، pnpm-lock.yaml یا package-lock.json رو مستقیم بخونه و بنویسه. یعنی تو میتونی از Aube استفاده کنی بدون اینکه بقیه تیم مجبور بشن چیزی عوض کنن.
دستور aubr هم یه قابلیت هوشمند داره: قبل از اجرای هر اسکریپت چک میکنه آیا dependencies تغییر کردن یا نه. اگه تغییری بوده اول نصب میکنه، بعد اسکریپت رو میزنه. اگه هم همه چیز بهروز باشه، مستقیم اجرا میشه و وقت هدر نمیره. برای ابزارهای one-off هم دستور aubx وجود داره.
از نظر امنیت، Aube رویکرد «deny by default» داره. یعنی lifecycle scriptها (مثل postinstall) به صورت پیشفرض اجرا نمیشن و باید صراحتاً تأیید بشن. پکیجهای جدیداً منتشرشده یه بازه ۲۴ ساعته cooling رو میگذرونن. downgrade کردن trust یه پکیج در مرحله resolve بلاک میشه و dependencyهای transitive عجیبوغریب هم فیلتر میشن. اگه هم paranoid: true رو فعال کنی، همه این gateهای نرم تبدیل به hard fail میشن و یه build jail هم اضافه میشه.
Aube با mise نصب میشه و استفاده ازش نسبتاً سادهست. با توجه به اینکه هنوز در مراحل اولیهست (v1.5.0)، جالبه ببینیم آیا میتونه جای خودشو توی اکوسیستم Node.js باز کنه یا نه.
نکات کلیدی:
- ۹.۲ برابر سریعتر از pnpm و ۲.۷ برابر سریعتر از Bun در warm install
- بدون نیاز به مایگریشن lockfile؛ با yarn.lock، pnpm-lock.yaml و package-lock.json سازگاره
- استور سراسری برای پکیجها که تا ۹۰٪ مصرف دیسک رو نسبت به npm کاهش میده
- دستور aubr قبل از هر اسکریپت چک میکنه آیا نصب لازمه یا نه
- سیاست امنیتی deny by default برای lifecycle scriptها و پکیجهای تازه منتشرشده
- حالت paranoid: true برای محیطهایی که به امنیت بیشتری نیاز دارن




