~2 دقیقه مطالعه • بروزرسانی ۳ آبان ۱۴۰۴
گزینههای دیپلوی در Next.js
Next.js را میتوان به روشهای مختلف دیپلوی کرد:
| روش دیپلوی | پشتیبانی ویژگیها |
|---|---|
| سرور Node.js | کامل |
| کانتینر Docker | کامل |
| خروجی استاتیک | محدود |
| آداپترها | وابسته به پلتفرم |
دیپلوی بهصورت سرور Node.js
برای دیپلوی روی سرور Node.js، مطمئن شوید فایل package.json شامل اسکریپتهای زیر باشد:
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
}
}سپس با اجرای npm run build اپلیکیشن را build کرده و با npm run start سرور را اجرا کنید. این روش از تمام ویژگیهای Next.js پشتیبانی میکند.
پلتفرمهای پیشنهادی: Flightcontrol، Railway، Replit
دیپلوی با Docker
Next.js را میتوان در هر پلتفرمی که از Docker پشتیبانی میکند دیپلوی کرد، از جمله Kubernetes یا سرویسهای ابری.
نکته توسعه: در محیطهای Mac و Windows، برای توسعه بهتر از npm run dev بهجای Docker استفاده کنید.
پلتفرمهای پیشنهادی: Docker، DigitalOcean، Fly.io، Google Cloud Run، Render، SST
دیپلوی بهصورت خروجی استاتیک
Next.js امکان خروجیگیری بهصورت سایت استاتیک یا SPA را فراهم میکند. این خروجی را میتوان روی هر سروری که فایلهای HTML/CSS/JS را سرو میکند دیپلوی کرد.
پلتفرمهای پیشنهادی: AWS S3، Nginx، Apache، GitHub Pages
محدودیت: ویژگیهایی که نیاز به سرور دارند در این حالت پشتیبانی نمیشوند.
دیپلوی با آداپترهای پلتفرمی
Next.js را میتوان با آداپترهای خاص برای پلتفرمهای مختلف اجرا کرد. برای اطلاعات دقیق، به مستندات هر پلتفرم مراجعه کنید:
- AWS Amplify Hosting
- Cloudflare
- Deno Deploy
- Netlify
- Vercel
در حال توسعه API آداپترهای دیپلوی هستیم تا همهٔ پلتفرمها بتوانند از آن استفاده کنند.
بروزرسانی نسخه Next.js
آخرین نسخه پایدار
برای بروزرسانی به آخرین نسخه پایدار:
npx @next/codemod@latest upgrade latestیا بهصورت دستی نصب کنید:
pnpm i next@latest react@latest react-dom@latest eslint-config-next@latestنسخه Canary
برای بروزرسانی به نسخه آزمایشی (canary):
npm i next@canaryویژگیهای موجود در canary:
- کشینگ: "use cache"، cacheLife، cacheTag، cacheComponents
- احراز هویت: forbidden، unauthorized، فایلهای forbidden.js و unauthorized.js، authInterrupts
جمعبندی
Next.js انعطافپذیری بالایی در دیپلوی دارد. چه بخواهید از سرور Node.js، کانتینر Docker، خروجی استاتیک یا آداپترهای پلتفرمی استفاده کنید، میتوانید با توجه به نیاز پروژه و زیرساخت خود، بهترین گزینه را انتخاب کنید و همیشه با نسخههای جدید همگام بمانید.
نوشته و پژوهش شده توسط دکتر شاهین صیامی