"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > نشر تطبيق NestJS باستخدام Vercel وSupabase

نشر تطبيق NestJS باستخدام Vercel وSupabase

تم النشر بتاريخ 2024-11-12
تصفح:817

افهم أن النشر إلى Vercel أمر سهل للغاية، ومع ذلك، هناك بعض الإعدادات التي تحتاج إلى أخذها في الاعتبار أثناء النشر.

المتطلبات الأساسية

  • مشروع NestJS متصل ويعمل بشكل صحيح محليًا في بيئة التطوير باستخدام PostgreSQL
  • حساب Vercel للنشر
  • حساب Supabase (سنقوم بإعداد قاعدة بيانات PostgreSQL هنا)

لنبدأ بإعداد Supabase مع الأخذ في الاعتبار أن تطبيق NestJS الخاص بك جاهز للنشر.

حساب سوباس

Supabase هو بديل Firebase مفتوح المصدر مع دعم كامل وتكوين سلس لقاعدة بيانات PostgreSQL الخاصة بك، كما يوفر ميزات إضافية مثل المصادقة والتخزين وما إلى ذلك.

قم بإعداد حساب جديد على Supabase وقم بإنشاء مشروع جديد في الحساب.

Deploying NestJS Application using Vercel and Supabase

بمجرد اكتمال الإعداد، انقر فوق زر الاتصال في صفحة الصفحة الرئيسية. سيُظهر لك هذا خيارات مختلفة لتوصيل قاعدة البيانات بمشروعك

Deploying NestJS Application using Vercel and Supabase

اختبر الاتصال على السكان المحليين باستخدام بيانات الاعتماد المقدمة للتأكد من أن كل شيء يعمل بشكل جيد.

ملاحظة: تأكد من عدم كشف بيانات الاعتماد وتخزينها في ملف .env الخاص بك (أعتقد أنك تعرف هذا بالفعل؟)

بعد ذلك، لنقم بإعداد حساب Vercel الخاص بنا ونشر المشروع

فيرسل

عادةً، من المعروف أن Vercel يتم استخدامه في الغالب لنشر تطبيقات الواجهة الأمامية، ومع ذلك، يمكن استخدامه أيضًا لنشر مشاريع الواجهة الخلفية.

ملاحظة: استخدم مزود خدمة مناسب بدلاً من ذلك إذا كنت تعمل على مشروع متوسط ​​إلى كبير الحجم لعمليات النشر الخلفية الخاصة بك.

على حساب Vercel الخاص بك، أنشئ مشروعًا جديدًا واتصل بمستودع Git الخاص بك. قم باستيراد ملف .env الخاص بك وانقر فوق الزر نشر.

Deploying NestJS Application using Vercel and Supabase

فويلا، هذا كل شيء ؟؟؟.
...

من المحتمل مواجهة المشكلات الشائعة

# خطأ: لا يوجد دليل إخراج يسمى "عام"

Deploying NestJS Application using Vercel and Supabase

هذا خطأ شائع لأن Vercel يحتاج إلى معرفة دليل الإخراج الخاص بك أثناء عملية الإنشاء. لإصلاح ذلك، ما عليك سوى إضافة ملف Versel.json ونسخ هذا:

{
  "version": 2,

  "builds": [
    {
      "src": "src/main.ts",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "src/main.ts",
      "methods": ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"]
    }
  ]
} 

قم بتشغيل النشر مرة أخرى وهذا كل شيء

...

# خطأ: تعطلت هذه الوظيفة بدون خادم

Deploying NestJS Application using Vercel and Supabase

في حالتي، كان ذلك بسبب عدم العثور على خطأ في الوحدة النمطية

Deploying NestJS Application using Vercel and Supabase

...
هناك عدة طرق لإصلاح هذه المشكلة:

الطريقة الأولى (استبدال جميع الواردات بمسار نسبي)

من

import { UsersService } from 'src/users/users.service';

ل

import { UsersService } from '../users/users.service';

...

الطريقة الثانية (تعديل ملف vercel.json وملف .gitignore)

لقد اتبعت هذه الطريقة في النهاية لأنني لم أكن بحاجة إلى قصر تطبيقي على استخدام عمليات استيراد المسار النسبي فقط.

لذا، قم بتعديل vercel.json إلى هذا

{
  "version": 2,

  "builds": [
    {
      "src": "dist/main.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "dist/main.js",
      "methods": ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"]
    }
  ]
}

انتقل إلى ملف .gitignore وقم بإزالة /dist.

قم بتشغيل عملية نشر جديدة وهذا كل شيء.

سعيد بالبرمجة! ?

بيان الافراج هذه المقالة مستنسخة على: https://dev.to/abayomijohn273/deploying-nestjs-application-using-vercel-and-supabase-3n7m?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3