نگهداشتن اپ Next.js بهروز: ابزارهای Agent در 16.4 و فلگهای کارایی که باید بشناسی
نویسنده: آرش لطیفی
با `next upgrade --agent`، `experimental.agentUpgrade` و `turbopackGc` در Next.js 16.4 میتوانی ارتقای امنیتی و پاکسازی حافظه را نیمهخودکار کنی. آموزش عملی با کانفیگهای واقعی.
TL;DR — Next.js 16.4 ابزارهایی داده که ارتقای نسخه و پاکسازی کش dev را نیمهخودکار میکند:
next upgrade --agentمایگریشن را به AI Agent میسپارد،experimental.agentUpgradeسر وقت بهت یادآوری امنیتی میدهد وturbopackGcحافظه و دیسک سشنهای طولانی dev را آزاد میکند.
مشکل واقعی: اپهایی که هیچوقت آپدیت نمیشوند
اکثر پروژههای Next.js ماهها روی یک نسخه میمانند چون آپدیت یعنی: چنجلاگ خواندن، کدمود اجرا کردن، تست گرفتن. تیم Next.js در پست رسمی 16.4 این را صریح هدفگیری کرده: «سرمایهگذاری روی ابزارهای Agent تا Next.js سیستمی باشد که خودش اپ تو را امن و بهروز نگه میدارد.»
سه ابزار جدید را یکییکی ببین.
مقایسه سریع ابزارها
| ابزار | کار | فلگ/دستور |
|---|---|---|
| Agent Upgrade | مایگریشن کامل نسخه توسط AI Agent | npx next@canary upgrade --agent=latest |
| Agent Upgrade reminders | یادآوری آپدیت در dev/build | experimental.agentUpgrade: 'security' |
| Turbopack GC | پاکسازی کش حافظه و دیسک در dev | experimental.turbopackGc: true |
| Rust React Compiler | کامپایلر ریکات داخل Turbopack | experimental.turbopackRustReactCompiler: true |
۱. ارتقا با یک دستور: next upgrade --agent
سوییچ جدید --agent برای next upgrade کل چرخه را به Agent میدهد:
طبق پست رسمی، این دستور اول نسخه نصبشده را چک میکند، ریلیز هدف را انتخاب میکند، و راهنمای مایگریشن، کدمودها و مراحل verify را برای Agent آماده میکند. Agent آپدیت را اعمال میکند، مشکلات مایگریشن را حل میکند و چک میکند اپ هنوز کار میکند.
نکته: استفاده از next@canary ابزار ارتقای آخر را اجرا میکند حتی اگر اپ خودت روی نسخه قدیمیتر باشد — پس ابزار از اپ جلوتر است، عمداً.
۲. یادآوری خودکار: experimental.agentUpgrade
بعد از اولین ارتقا، میتوانی بگذاری Next.js خودش موقع next dev یا next build سر وقت بگوید «آپدیت مرتبط هست». از پست رسمی:
دو پالیسی اصلی:
'security'(دیفالت): فقط برای ارتقاهایی که آسیبپذیری شناختهشده نسخه نصبشدهات را میبندند یادآوری میکند'latest': برای هر major یا minor جدیدتر یادآوری میکند
اگر مثل خودم با Cron یا اسکریپت build سروری کار میکنی، 'security' همان حد تعادل است: بدون اسپم، ولی هیچ CVEای از چشمت نمیافتد. برای دیدن اینکه چرا بستن سریع CVEها مهم است، راهنمای پچ امنیتی 16.3.8 را ببین.
۳. سشنهای dev طولانی: turbopackGc
وقتی یک روز کامل روی اپ کار میکنی، Turbopack کش کامپایل کارهای بیاستفاده را نگه میدارد — هم در حافظه هم روی دیسک. 16.4 یک GC آزمایشی دارد که اینها را پاک میکند، از جمله دادههای بهجامانده از سشنهای قبلی مثل کشِ روتهایی که حذف کردهای:
در همان پست رسمی، دو بهبود کارایی دیگر هم معرفی شدهاند که فلگ دارند:
- Rust React Compiler با فلگ
turbopackRustReactCompiler: true(داخلexperimental) — طبق پست رسمی، تغییرهای تخصیص حافظه تیم Turbopack مصرف حافظه React Compiler را ۳۰٪ و زمان کامپایل را ۱۵٪ کم کرده - اسم کلاسهای CSS Module کوتاهتر در پروडاکشن و export mangling برای باندل کوچکتر — این یکی دیفالت است و فلگ نمیخواهد
کدامها را همین امروز فعال کنم؟
- [ ]
next upgrade --agentرا روی شاخه جدا اجرا کن و diff را خودت مرور کن — Agent جای مرور انسانی را نمیگیرد - [ ]
experimental.agentUpgrade: 'security'را درnext.config.tsبگذار (اگر already روی 16.4 هستی) - [ ]
turbopackGcرا روشن کن و یک روز کاری کامل dev بزن؛ بعد پوشه.nextرا چک کن که رشد غیرعادی نداده باشد - [ ] نسخه React پروژه را چک کن — 16.4 با React 19.3 میآید که View Transitions و Fragment Refs در آن stable شدهاند