VoidZero نسخهٔ بتای Vite+ را منتشر کرد؛ زنجیرهٔ ابزار یکپارچه‌ای که زمان اجرا، مدیریت پکیج و ابزارهای فرانت‌اند را با یک فرمان واحد به نام vp گرد هم آورده است.

چه چیز جدیدی در Vite+ وجود دارد؟

Vite+ نقطهٔ ورود واحدی برای توسعهٔ وب ارائه می‌دهد و ابزارهایی مانند Vite، Vitest، Rolldown، tsdown، Oxlint و Oxfmt را همراه با یک رانر تسک داخلی ترکیب می‌کند تا یک پشتهٔ تست‌شده و یکپارچه فراهم شود. این پروژه متن‌باز تحت مجوز MIT منتشر شده و به یک فریم‌ورک خاص وابسته نیست؛ بنابراین مناسب CLIها، کتابخانه‌ها و اپلیکیشن‌های وب است.

دستورهای کلیدی vp

vp create   # اسکافولد کردن پروژه یا مونورپو جدید
vp dev      # راه‌اندازی سرور توسعه با بارگذاری داغ (Vite 8)
vp check    # قالب‌دهی با Oxfmt، lint با Oxlint و تایپ‌چک در یک گام
vp test     # اجرای تست‌ها با Vitest
vp build    # تولید خروجی برای محیط پروداکشن
vp pack     # بسته‌بندی کتابخانه‌ها با tsdown
vp run      # اجرای تسک‌های مونورپو با رانری آگاه به کش و وابستگی

هدف Vite+ همگن‌سازی جریان کاری بین مخازن مختلف است تا تیم‌ها پیکربندی و نگهداری کمتری داشته باشند و بتوانند همان ابزارها را در پروژه‌های متنوع به‌کار ببرند.

محیط توسعه و مثال اجرای فرمان‌های vp در Vite+

پیشرفت از آلفا تا بتا

از زمان نسخهٔ آلفا، تیم توسعه بیش از 500 Pull Request را در بیش از دو دهه انتشار ادغام کرده است. تغییرات مهم شامل بهبود کش برای vp run، گسترش قابلیت‌های vp migrate با پیام‌های مهاجرتی برای عامل‌های هوش مصنوعی، امکانات سازمانی مانند قالب‌های سازمانی، پشتیبانی از HTTP آگاه به پراکسی و بیش از 180 رفع اشکال بوده است. بیش از 1300 مخزن عمومی هم‌اکنون به Vite+ وابسته‌اند و نمونه‌هایی مانند Dify، BlockNote و vinext پذیرش آن را آغاز کرده‌اند.

واکنش جامعه و انتقادات

پست مربوط به Vite+ در Hacker News توجه زیادی جلب کرد و تا 223 امتیاز گرفت؛ بازخوردها ترکیبی است: برخی از ابزارهای توکار استقبال کرده و برخی آن را «پشتهٔ کارآمد اما محافظه‌کار» توصیف کرده‌اند که پرفورمنس مناسب و پیکربندی کمتر ارائه می‌دهد.

در GitHub، گزارشی توسط Jared Wilcurt بخش‌هایی از Vite+ را «انتزاع روی اسکریپت‌های npm» توصیف کرده و مدیریت نسخهٔ Node در vp env را نقطهٔ ضعف دانسته که خطر قفل‌شدن در اکوسیستم VoidZero را مطرح می‌کند. تیم VoidZero پاسخ داده است که پلاگین‌های Vite همچنان قابل استفاده هستند و پروژه‌ها می‌توانند مدیریت پکیج خود را حفظ کنند.

«فیلِ Rust در اتاق»؛ نگرانی نسبت به بازنویسی‌ها

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

چرا Vite+ ممکن است برای تیم‌ها جذاب باشد

  • یک فرمان واحد برای انجام اغلب نیازهای توسعهٔ روزمره.
  • پشتهٔ آزمایش‌شده و متن‌باز تحت مجوز MIT.
  • قابلیت کار با پروژه‌های تک‌پکیجی، کتابخانه‌ها و مونورپوها.
  • هم‌راستایی ابزارها و الگوهایی که تیم‌ها پیش‌تر از آن‌ها استفاده می‌کرده‌اند.

ملاحظات و ریسک‌ها

  • خطر قفل‌شدن در اکوسیستم VoidZero به‌ویژه در احراز و مدیریت نسخه‌های Node.
  • نیاز به بررسی دقیق در صورت بازنویسی‌های گسترده به زبان‌های جدید مانند Rust.
  • پیش‌نمایش‌های مهاجرت ممکن است در تنظیمات پیچیده نیاز به دخالت دستی داشته باشند.

رقابت: Turbopack، Bun و دیگران

هر رقیب نقاط قوت و محدودیت خود را دارد: Turbopack کارایی بالایی ارائه می‌دهد اما عمدتاً برای Next.js بهینه است، Bun یک باینری واحد با زمان اجرای متفاوت عرضه می‌کند، و Vite+ تلاش می‌کند با لایه‌گذاری بر ابزارهای مرسوم تجربهٔ آشناتری برای تیم‌ها فراهم کند. ابزارهایی مانند npm و اکوسیستم پیرامون آن نیز در تصمیم‌گیری نقش دارند.

مسیر تا نسخهٔ 1.0

تیم VoidZero اولویت خود را روی بازخورد جامعه و رفع ناسازگاری‌ها گذاشته است. فرمان vp migrate پیش‌نمایشی از تغییرات پیشنهادی ارائه می‌دهد، اما برای موارد پیچیده احتمالاً دخالت دستی نیاز خواهد بود؛ تیم توسعه مستندات مهاجرت را برای انتقال‌های امن‌تر منتشر کرده است.

جمع‌بندی

Vite+ با ترکیب ابزارهای آشنا تحت یک رابط واحد تلاش می‌کند تجربهٔ توسعهٔ وب را ساده‌تر و همگن‌تر کند. پذیرش اولیه سریع بوده و مباحثی دربارهٔ انتخاب زبان پیاده‌سازی و خطر قفل‌بودن در اکوسیستم ادامه دارد. روند توسعه و بازخورد جامعه تعیین‌کننده خواهد بود که آیا Vite+ می‌تواند به یک استاندارد پایدار در جریان‌های کاری توسعهٔ وب تبدیل شود یا خیر.

منابع مرتبط: معرفی Vite در Wikipedia، بحث‌ها در Hacker News و صفحات گیت‌هاب پروژه‌ها.