আপনার IDX ওয়ার্কস্পেস কাস্টমাইজ করুন

প্রজেক্ট IDX আপনাকে একটি একক .idx/dev.nix কনফিগারেশন ফাইল সংজ্ঞায়িত করে আপনার প্রকল্পের অনন্য চাহিদা অনুযায়ী আপনার কর্মক্ষেত্রকে টেইলার করতে দেয় যা বর্ণনা করে:

  • আপনার যে সিস্টেম টুলগুলি চালাতে হবে (উদাহরণস্বরূপ, টার্মিনাল থেকে), যেমন কম্পাইলার বা অন্যান্য বাইনারি।
  • আপনার যে IDE এক্সটেনশনগুলি ইনস্টল করা দরকার (উদাহরণস্বরূপ, প্রোগ্রামিং ভাষা সমর্থন)।
  • আপনার অ্যাপের প্রিভিউগুলি কীভাবে দেখানো উচিত (উদাহরণস্বরূপ, আপনার ওয়েব সার্ভার চালানোর কমান্ড)।
  • আপনার কর্মক্ষেত্রে চলমান স্থানীয় সার্ভারগুলিতে বিশ্বব্যাপী পরিবেশের ভেরিয়েবল উপলব্ধ।

কি পাওয়া যায় তার সম্পূর্ণ বিবরণের জন্য dev.nix রেফারেন্স দেখুন।

নিক্স এবং আইডিএক্স

IDX প্রতিটি কর্মক্ষেত্রের জন্য পরিবেশ কনফিগারেশন সংজ্ঞায়িত করতে Nix ব্যবহার করে। বিশেষভাবে, IDX ব্যবহার করে:

যেহেতু Nix পরিবেশগুলি পুনরুত্পাদনযোগ্য এবং ঘোষণামূলক, IDX এর প্রসঙ্গে, এর অর্থ হল আপনি আপনার Git সংগ্রহস্থলের অংশ হিসাবে আপনার Nix কনফিগারেশন ফাইল শেয়ার করতে পারেন যাতে আপনার প্রকল্পে যারা কাজ করে তাদের প্রত্যেকের একই পরিবেশ কনফিগারেশন রয়েছে।

একটি মৌলিক উদাহরণ

নিম্নলিখিত উদাহরণটি পূর্বরূপ সক্ষম করে একটি মৌলিক পরিবেশ কনফিগারেশন দেখায়:

{ pkgs, ... }: {

  # Which nixpkgs channel to use.
  channel = "stable-23.11"; # or "unstable"

  # Use https://search.nixos.org/packages to find packages
  packages = [
    pkgs.nodejs_18
  ];

  # Sets environment variables in the workspace
  env = {
    SOME_ENV_VAR = "hello";
  };

  # Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
  idx.extensions = [
    "angular.ng-template"
  ];

  # Enable previews and customize configuration
  idx.previews = {
    enable = true;
    previews = {
      web = {
        command = [
          "npm"
          "run"
          "start"
          "--"
          "--port"
          "$PORT"
          "--host"
          "0.0.0.0"
          "--disable-host-check"
        ];
        manager = "web";
      };
    };
  };
}

সিস্টেম টুল যোগ করুন

আপনার ওয়ার্কস্পেসে সিস্টেম টুল যোগ করতে, যেমন ক্লাউড পরিষেবার জন্য কম্পাইলার বা CLI প্রোগ্রাম, Nix প্যাকেজ রেজিস্ট্রিতে অনন্য প্যাকেজ আইডি খুঁজুন এবং এটি আপনার dev.nix ফাইলের packages অবজেক্টে যোগ করুন, যা `pkgs-এর সাথে উপসর্গযুক্ত:

{ pkgs, ... }: {
  # Which nixpkgs channel to use.
  channel = "stable-23.11"; # or "unstable"

  # Use https://search.nixos.org/packages to find packages
  packages = [
    pkgs.nodejs_18
  ];
  ...
}

আপনি সাধারণত OS-নির্দিষ্ট প্যাকেজ পরিচালক যেমন APT ( apt এবং apt-get ), Homebrew ( brew ), এবং dpkg ব্যবহার করে সিস্টেম প্যাকেজ ইনস্টল করতে পারেন তার থেকে এটি আলাদা। কোন সিস্টেম প্যাকেজগুলি প্রয়োজন তা ঘোষণামূলকভাবে বর্ণনা করার অর্থ হল IDX ওয়ার্কস্পেসগুলি ভাগ করা এবং পুনরুত্পাদন করা সহজ৷

স্থানীয় নোড বাইনারি ব্যবহার করুন

আপনার স্থানীয় মেশিনের মতই, স্থানীয়ভাবে ইনস্টল করা নোড প্যাকেজগুলির সাথে সম্পর্কিত বাইনারিগুলি (যেমন প্যাকেজগুলি আপনার package.json এ সংজ্ঞায়িত করা হয়েছে) একটি টার্মিনাল প্যানেলে npx কমান্ডের মাধ্যমে চালানো যেতে পারে।

একটি অতিরিক্ত সুবিধা হিসাবে, আপনি যদি একটি node_modules ফোল্ডার (যেমন একটি ওয়েব প্রকল্পের রুট ডিরেক্টরি) সহ একটি ডিরেক্টরিতে থাকেন তবে npx উপসর্গ ছাড়াই স্থানীয়ভাবে ইনস্টল করা বাইনারিগুলিকে সরাসরি আহ্বান করা যেতে পারে৷

gcloud উপাদান যোগ করুন

Google ক্লাউডের জন্য gcloud CLI- এর একটি ডিফল্ট কনফিগারেশন সমস্ত IDX কর্মক্ষেত্রে উপলব্ধ।

আপনার যদি অতিরিক্ত উপাদানের প্রয়োজন হয় তবে আপনি সেগুলিকে আপনার dev.nix ফাইলে যুক্ত করতে পারেন:

{ pkgs }: {
  packages = [
    ...
    (pkgs.google-cloud-sdk.withExtraComponents [
      pkgs.google-cloud-sdk.components.cloud-datastore-emulator
    ])
    ...
  ];
}

IDE এক্সটেনশন যোগ করুন

আপনি দুটি উপায়ে OpenVSX এক্সটেনশন রেজিস্ট্রি ব্যবহার করে IDX-এ এক্সটেনশন ইনস্টল করতে পারেন:

  • এক্সটেনশনগুলি আবিষ্কার এবং ইনস্টল করতে IDX-এ এক্সটেনশন প্যানেল ব্যবহার করে ৷ এই পদ্ধতিটি ব্যবহারকারী-নির্দিষ্ট এক্সটেনশনগুলির জন্য সর্বোত্তম, যেমন:

    • কাস্টম রঙের থিম
  • আপনার dev.nix ফাইলে এক্সটেনশন যোগ করে । আপনি যখন আপনার ওয়ার্কস্পেস কনফিগারেশন শেয়ার করবেন তখন এই এক্সটেনশনগুলি স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যাবে। এই পদ্ধতিটি প্রজেক্ট-নির্দিষ্ট এক্সটেনশনের জন্য সর্বোত্তম, যেমন:

    • ভাষা-নির্দিষ্ট ডিবাগার সহ প্রোগ্রামিং ভাষা এক্সটেনশন
    • আপনার প্রকল্পে ব্যবহৃত ক্লাউড পরিষেবার জন্য অফিসিয়াল এক্সটেনশন
    • কোড ফরম্যাটার

পরবর্তী পদ্ধতির জন্য, আপনি আপনার dev.nix ফাইলে IDE এক্সটেনশনগুলি অন্তর্ভুক্ত করতে পারেন সম্পূর্ণরূপে-যোগ্য এক্সটেনশন আইডি (ফর্ম <publisher>.<id> ) খুঁজে এবং এটিকে idx.extensions অবজেক্টে যুক্ত করে:

{ pkgs, ... }: {
  ...
  # Search for the extensions you want on https://open-vsx.org/ and use the format
  # "<publisher>.<id>"
  idx.extensions = [
    "angular.ng-template"
  ];
  ...
}

সাধারণ পরিষেবা যোগ করুন

বিকাশের সময় আপনার প্রয়োজন হতে পারে এমন সাধারণ পরিষেবাগুলির জন্যও IDX সরলীকৃত সেটআপ এবং কনফিগারেশন অফার করে, যার মধ্যে রয়েছে:

  • পাত্রে
    • ডকার ( services.docker.* )
  • মেসেজিং
    • পাব/সাব এমুলেটর ( services.pubsub.* )
  • ডাটাবেস
    • মাইএসকিউএল ( services.mysql.* )
    • Postgres ( services.postgres.* )
    • Redis ( services.redis.* )
    • স্প্যানার ( services.spanner.* )

আপনার কর্মক্ষেত্রে এই পরিষেবাগুলি সক্ষম করার বিষয়ে বিশদ বিবরণের জন্য, services.* dev.nix রেফারেন্সের অংশগুলি।

পূর্বরূপ কাস্টমাইজ করুন

আপনার অ্যাপের পূর্বরূপগুলি কীভাবে কাস্টমাইজ করবেন তার বিশদ বিবরণের জন্য, পূর্বরূপগুলির জন্য ডকুমেন্টেশন দেখুন।

সব কাস্টমাইজেশন বিকল্প দেখুন

পরিবেশ কনফিগারেশন স্কিমার বিশদ বিবরণের জন্য dev.nix রেফারেন্স দেখুন।