অ্যাপ হোস্টিংয়ের সাথে মনোরেপোস ব্যবহার করুন

মোনোরেপোর মাধ্যমে আপনি একটিমাত্র ডিরেক্টরিতে একাধিক প্রজেক্ট গুছিয়ে ও পরিচালনা করতে পারেন। এই নির্দেশিকায় App Hosting ব্যবহার করে টার্বোরেপো বা এনএক্স-ভিত্তিক অ্যাপ ডেপ্লয় করা কীভাবে শুরু করবেন, তা বর্ণনা করা হয়েছে।

Firebase কনসোল দিয়ে মোনোরেপো স্থাপন করুন

ফায়ারবেস কনসোলের গ্রাফিক্যাল ব্যাকএন্ড সেটআপ ফ্লো-এর মধ্যেই মোনোরেপো সাপোর্ট অন্তর্ভুক্ত রয়েছে। "ডিপ্লয়মেন্ট সেটিংস"-এর অধীনে "রুট ডিরেক্টরি" জানতে চাওয়া হলে, মোনোরেপোর ভিতরে যে অ্যাপ্লিকেশনটি ডিপ্লয় করতে চান তার পাথ উল্লেখ করুন:

কনসোল ব্যাকএন্ড তৈরির ভিউয়ের স্ক্রিনশট

Firebase CLI ব্যবহার করে মোনোরেপো স্থাপন করুন

Firebase CLI কমান্ড apphosting:backends:create দ্বারা চালু করা ব্যাকএন্ড সেটআপ ফ্লো-এর মধ্যেই Monorepo সাপোর্ট অন্তর্ভুক্ত রয়েছে। এই ফ্লো-তে প্রবেশ করে আপনার পছন্দের GitHub রিপোজিটরি নির্দিষ্ট করার পর, আপনাকে আপনার রিপোজিটরির সাপেক্ষে অ্যাপের রুট ডিরেক্টরি নির্দিষ্ট করতে বলা হবে; এই প্রম্পটে, আপনি Monorepo-এর ভিতরে যে অ্যাপ্লিকেশনটি ডেপ্লয় করতে চান তার পাথটি দিন:

$ firebase apphosting:backends:create --project [project-name]
i  === Import a GitHub repository
✔  Connected with GitHub successfully

? Which GitHub repo do you want to deploy? gh-username/nx-monorepo
? Specify your app's root directory relative to your repository path/to/app

উদাহরণস্বরূপ, নিম্নলিখিত প্রজেক্ট কাঠামো এবং 'টার্গেট-অ্যাপ'কে আপনার বিল্ড ও ডিপ্লয় করতে চাওয়া অ্যাপ্লিকেশন হিসেবে ধরে নিলে যে অ্যাসেটগুলো ডিপ্লয় করা হবে, তা নিচে দেওয়া হলো:

এনএক্স

.
    ├── libs
    ├── apps
    │   └── target-app
    │       ├── project.json
    │       └── src
    │           └── ...
    ├── nx.json
    ├── package-lock.json
    └── package.json

টার্বোরেপো

.
    ├── packages
    ├── apps
    │   └── target-app
    │       ├── package.json
    │       └── src
    │           └── ...
    ├── turbo.json
    ├── package.json
    └── package-lock.json

আপনার রিপোজিটরির সাপেক্ষে অ্যাপটির রুট ডিরেক্টরি হলো apps/target-app

মোনোরেপো ডেপ্লয়মেন্টের সমস্যা সমাধান

  • আপনি যদি Nx-এর জন্য "রুট ডিরেক্টরি" ফিল্ডটি নির্দিষ্ট না করেন, তাহলে বিল্ডটি ব্যর্থ হবে এবং একটি বার্তা প্রদর্শিত হবে যে App Hosting Nx মনোরেপোর ভিতরে টার্গেট করার জন্য কোনো প্রজেক্ট খুঁজে পাচ্ছে না। একইভাবে, টার্বোরেপো ব্যবহারকারীদের অবশ্যই একটি টার্গেট অ্যাপ ডিরেক্টরি নির্দিষ্ট করতে হবে, কারণ টার্বোরেপোতে ডিফল্ট প্রজেক্টের কোনো ধারণা নেই।
  • Nx + Angular অ্যাপ্লিকেশনের জন্য, অ্যাপ্লিকেশনটি বিল্ড করতে আপনাকে অবশ্যই Angular অ্যাপ্লিকেশন বিল্ডার ব্যবহার করতে হবে। Angular অ্যাপ্লিকেশন বিল্ডারটি project.json এ নির্দিষ্ট করা থাকে।