vp migrate: کوچ پروژه به Vite+ با یک دستور
خلاصهٔ کاملتر
تو مستندات Vite+ اومده که vp migrate نقطهٔ شروع جمعکردن ابزارهای پراکندهٔ یه پروژهست. اگه الان Vite و Vitest و Oxlint و Oxfmt و ESLint و Prettier و tsdown و tsup رو جدا جدا کانفیگ کرده باشی، این دستور همه رو میبره روی دیفالتهای Vite+، یعنی یه CLI و یه فایل کانفیگ واحد به جای سیمکشی دستی هر ابزار. بدون آرگومان روی پوشهٔ فعلی کار میکنه و میتونی مسیر هم بهش بدی.
برای مونوریپو باید ریشهٔ workspace رو هدف بگیری، چون مهاجرت کانفیگ پکیجمنیجر و catalogs و lockfile رو دست میزنه که بین همهٔ عضوها مشترکه. خود دستور دیپندنسیها رو آپدیت میکنه، ایمپورتها رو بازنویسی میکنه، کانفیگ هر ابزار رو میریزه تو vite.config.ts و آخرش پروژه رو فرمت میکنه. فلگهایی مثل --no-interactive و --hooks و --agent هم داره.
سنگینترین بخش مهاجرت، Vitest هست. خود vite-plus نسخهٔ vitest@5.0.1 رو زیر vite-plus/test* دوباره export میکنه، پس برای تستهای node-mode دیگه لازم نیست vitest رو جدا نصب کنی. اگه دستی مهاجرت میکنی، ایمپورتها اینطوری عوض میشن:
// before
import { defineConfig } from 'vitest/config';
import { describe, expect, it, vi } from 'vitest';
// after
import { defineConfig } from 'vite-plus';
import { describe, expect, it, vi } from 'vite-plus/test';یه استثنا هم هست: بلوکهای declare module 'vitest' عمداً بازنویسی نمیشن، چون vite-plus/test* فقط یه re-export نازک از خود vitest ـه و type augmentation باید به هویت ماژول اصلی وصل بمونه تا درست merge بشه. برای لایبرریها هم tsdown میره روی 0.23 و مهاجرت برای حفظ رفتار قبلی deps.resolveDepSubpath: true و اگه چکهای ATTW فعال باشن attw.profile: 'strict' رو اضافه میکنه.
مستندات تأکید میکنه lockfile اصلی رو نگه داری تا مهاجرت بتونه runner قدیمی رو تشخیص بده، چون اگه اول دیپندنسیها رو آپدیت کنی ممکنه سازگاری با v4 حفظ نشه. Husky و lefthook و simple-git-hooks و yorkie هم خودکار تبدیل نمیشن و Vite+ کانفیگشون رو دستنخورده میذاره و فقط هشدار میده. ترتیب پیشنهادی بعد از مهاجرت اینه: vp install بعد vp check بعد vp test و آخر vp build.
نکات کلیدی:
- Vite+ 1.0 تغییرات شکنندهٔ Vitest 5 رو داخل خودش داره و برای بیلد لایبرری از tsdown 0.23 استفاده میکنه.
- vite-plus نسخهٔ vitest@5.0.1 رو زیر vite-plus/test* دوباره export میکنه.
- اجرای مهاجرت بدون CLI گلوبال به یه Node با نسخهٔ ^22.18.0 || ^24.11.0 || >=26.0.0 نیاز داره.
- تو مونوریپو فقط ریشهٔ workspace قابل مهاجرته، نه یه عضو تنها.
- برای لایبرریها جای vp build باید vp pack رو اجرا کنی.




