Node.js, Next.js və Nuxt tətbiqləri.
Node.js layihələrinin necə tanınması və işə salınması: Node versiyası, paket meneceri, Next.js və Nuxt (server və ya statik), SvelteKit, Astro, Express və digərləri, PORT dəyişəni və Prisma miqrasiyaları.
package.json faylı olan repozitoriya Node.js layihəsidir. Freymvorku, paket menecerini və Node versiyasını özümüz seçir, layihəni yığıb işə salırıq — Sizə yalnız push etmək qalır.
Node versiyası və paket meneceri
- Node.js —
package.jsonfaylındakıengines.nodesahəsindən və ya.nvmrcfaylından götürülür: 24, 22, 20, 18 və ya 16 versiyalarından uyğun gələn ən yenisi. Hər ikisi olmadıqda Node.js 22. - Paket meneceri — lock faylına görə:
pnpm-lock.yaml→ pnpm,yarn.lock→ yarn, əks halda npm (package-lock.jsonolduqdanpm ci). - Yığım —
package.jsonfaylındabuildskripti olduqda həmin skript.
Freymvorklar
| Freymvork | Necə işləyir |
|---|---|
| Next.js | server kimi (next start) — server rendering, API marşrutları və middleware adi qaydada işləyir |
output: 'export' ilə Next.js | out qovluğundan statik sayt kimi |
| Nuxt | server kimi (.output/server/index.mjs) |
ssr: false və generate skripti ilə Nuxt | .output/public qovluğundan statik sayt kimi |
| SvelteKit | adapter-node ilə server kimi; adapter-static ilə statik sayt kimi |
| Astro | statik sayt kimi; @astrojs/node ilə server kimi |
| NestJS | yığımdan sonra dist/main.js |
| Express, Fastify, Koa, Hono və digər serverlər | scripts.start skriptindəki fayl (node server.js), o olmadıqda main, o da olmadıqda server.js, app.js, index.js və ya main.js |
Yalnız front-end layihələri — Vite, Create React App, Angular, Vue CLI və digərləri — statik sayt kimi təqdim olunur; ətraflı: Statik saytlar.
PORT dəyişənini dinləyin
Server PORT dəyişənindəki portu bütün interfeyslərdə dinləməlidir:
const port = process.env.PORT || 3000
app.listen(port, '0.0.0.0')Next.js və Nuxt bunu özləri edir. Tətbiqiniz sabit portu dinləyirsə, ziyarətçiləri qəbul etməyəcək — belə olduqda yerləşdirmə işə salma yoxlamasında dayanır və əvvəlki versiya işləməyə davam edir.
Yığım zamanı istifadə olunan dəyərlər
Dəyişənlər bölməsindəki dəyişənlər yığıma deyil, işləyən tətbiqə ötürülür. Yığımın müştəri koduna yazdığı dəyərlər — məsələn, Next.js-də NEXT_PUBLIC_… və ya VITE_… — repozitoriyanızdan, məsələn, commit edilmiş .env.production faylından oxunur. Server tərəfindəki kod Dəyişənlər bölməsini adi qaydada oxuyur.
Öz işə salma əmriniz
Müəyyən edilmiş işə salma qaydası Sizə uyğun deyilsə, Parametrlər → Yığım parametrləri → İşə salma əmri sahəsini təyin edin, məsələn, node dist/server.js və ya npm run start:prod. Quraşdırma və yığım əmrlərini də orada dəyişmək olar.
Verilənlər bazaları və Prisma
Layihəyə PostgreSQL və ya MySQL əlavə edin və DATABASE_URL dəyişənini oxuyun — o, Sizin üçün təyin olunur. Asılılıqlarınızda Prisma varsa, tövsiyə olunan buraxılış əmri npx prisma migrate deploy əmridir: o, hər yerləşdirmədə, yeni versiya ziyarətçiləri qəbul etməzdən əvvəl icra olunur. Ətraflı: Yerləşdirmələr.
BullMQ ilə növbələr üçün Valkey əlavə edin və REDIS_URL dəyişənindən istifadə edin. Növbə prosesini fon prosesi kimi işlədin — Proseslər bölməsində və ya öz resursları olan ayrıca servis kimi. Ətraflı: Layihənin servisləri.
Yerləşdirmədən sonra qalan fayllar
Hər yerləşdirmə repozitoriyanızın təzə surəti ilə başlayır. Tətbiqinizin /data qovluğuna yazdığı fayllar yerləşdirmələr arasında saxlanılır və hər gün ehtiyat nüsxəyə alınır; başqa yerə yazılan fayllar növbəti yerləşdirmədən sonra silinir. Yükləmələr və media üçün adətən obyekt yaddaşı daha yaxşı seçimdir.
Monorepo
Bir neçə layihədən ibarət repozitoriya üçün tətbiqi yaradarkən Layihə qovluğu sahəsini təyin edin (məsələn, apps/web). Eyni repozitoriyanın başqa qovluğu ayrıca veb servis kimi işləyə bilər — ətraflı: Layihənin servisləri.