Nitro: یه سرور پروداکشن برای اپهای Vite
خلاصهٔ کاملتر
Nitro یه لایه سرور آمادهی پروداکشنه که اپ Vite شما رو گسترش میده و با هر رانتایمی سازگاره. ایدهی اصلیش اینه که روتهای سرور رو به اپ اضافه کنی و بعد همون کدبیس رو با یه تجربهی کانفیگ صفر روی کلی پلتفرم میزبانی دیپلوی کنی، بدون اینکه به یه پلتفرم خاص قفل بشی.
راهاندازیش هم سادهست؛ کافیه پلاگین Nitro رو به کانفیگ Vite اضافه کنی و مسیر پوشهی سرور رو مشخص کنی:
import { defineConfig } from 'vite'
import { nitro } from 'nitro/vite'
export default defineConfig({
plugins: [nitro()],
nitro: {
serverDir: "./server"
}
})از نظر سرعت روی Vite 8 (که با rolldown کار میکنه) سواره و موقع توسعه HMR رو روی سرور هم داری. ادعا میکنه که هیچ سرباری به رانتایم اضافه نمیکنه، وابستگیهاش کمه (node_modules سنگین نداری)، خروجی استانداردش زیر ۱۰ کیلوبایته و بیلدهای پروداکشن سرد توی چند ثانیه تموم میشن نه چند دقیقه.
مسیریابیش بر اساس فایله؛ هر چی توی پوشهی routes/ بذاری خودکار ثبت میشه. اگه بخوای میتونی فریمورک دلخواهت مثل H3، Hono، Elysia یا Express رو هم از طریق یه فایل ورودی server.ts بیاری وسط. روی این بخش روی استانداردهای وب تکیه میکنه و دستت رو برای انتخاب کتابخونه باز میذاره.
چند تا امکان توکار هم داره: یه لایهی ذخیرهسازی key-value یونیورسال با unstorage که با فایلسیستم، Redis و Cloudflare KV کار میکنه؛ کشینگ توکار با پشتیبانی از الگوی stale-while-revalidate؛ و یه لایهی دیتابیس سبک با db0 که بهصورت پیشفرض SQLite رو داره ولی از PostgreSQL، MySQL و Cloudflare D1 هم پشتیبانی میکنه.
نکات کلیدی:
- Nitro یه سرور آمادهی پروداکشن به اپ Vite اضافه میکنه و با هر رانتایمی سازگاره
- همون کدبیس بدون کانفیگ روی Node، Cloudflare Workers، Deno، Bun، AWS Lambda، Vercel و Netlify دیپلوی میشه
- مسیریابی بر اساس فایل توی پوشهی routes/ و امکان آوردن فریمورکهایی مثل H3، Hono، Elysia یا Express
- امکانات توکار: ذخیرهسازی یونیورسال، کشینگ، و یه لایهی دیتابیس سبک با پشتیبانی از SQLite، PostgreSQL و MySQL
- خروجی کوچیک (زیر ۱۰ کیلوبایت) و بیلدهای سریع که توی چند ثانیه تموم میشن




