Firebase Studio के फ़ाइल फ़ोल्डर को पसंद के मुताबिक बनाना

Firebase Studio की मदद से, अपने प्रोजेक्ट की खास ज़रूरतों के हिसाब से फ़ाइल फ़ोल्डर को बनाया जा सकता है. इसके लिए, एक .idx/dev.nix कॉन्फ़िगरेशन फ़ाइल तय करें. इसमें ये चीज़ें शामिल होनी चाहिए:

  • ऐसे सिस्टम टूल जिन्हें आपको चलाना होगा. जैसे, कंपाइलर या अन्य बाइनरी. इन्हें टर्मिनल से चलाया जा सकता है.
  • आपको जो एक्सटेंशन इंस्टॉल करने हैं (उदाहरण के लिए, प्रोग्रामिंग भाषा के लिए सहायता).
  • ऐप्लिकेशन की झलक कैसे दिखनी चाहिए. उदाहरण के लिए, वेब सर्वर को चलाने के लिए निर्देश.
  • आपके वर्कस्पेस में चल रहे लोकल सर्वर के लिए उपलब्ध ग्लोबल एनवायरमेंट वैरिएबल.

उपलब्ध सुविधाओं के बारे में पूरी जानकारी पाने के लिए, dev.nix रेफ़रंस देखें.

Nix और Firebase Studio

Firebase Studio, हर वर्कस्पेस के लिए एनवायरमेंट कॉन्फ़िगरेशन तय करने के लिए, Nix का इस्तेमाल करता है. खास तौर पर, Firebase Studio इनका इस्तेमाल करता है:

  • वर्कस्पेस के एनवायरमेंट के बारे में बताने के लिए, Nix प्रोग्रामिंग लैंग्वेज का इस्तेमाल किया जाता है. Nix, फ़ंक्शनल प्रोग्रामिंग भाषा है. dev.nix फ़ाइल में एट्रिब्यूट और पैकेज लाइब्रेरी तय की जा सकती हैं. ये Nix एट्रिब्यूट सेट सिंटैक्स के मुताबिक होती हैं.

  • Nix पैकेज मैनेजर, आपके Workspace में उपलब्ध सिस्टम टूल मैनेज करता है. यह ऑपरेटिंग सिस्टम के हिसाब से पैकेज मैनेजर की तरह ही काम करता है. जैसे, APT (apt और apt-get), Homebrew (brew), और dpkg.

Firebase Studio के संदर्भ में, Nix एनवायरमेंट को फिर से बनाया जा सकता है और इनके बारे में जानकारी दी जा सकती है. इसका मतलब है कि अपनी 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_20
  ];

  # 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";
        # Optionally, specify a directory that contains your web app
        # cwd = "app/client";
      };
    };
  };
}

सिस्टम टूल जोड़ना

अपने वर्कस्पेस में सिस्टम टूल जोड़ने के लिए, जैसे कि क्लाउड सेवाओं के लिए कंपाइलर या सीएलआई प्रोग्राम, 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_20
  ];
  ...
}

यह तरीका, आम तौर पर ऑपरेटिंग सिस्टम के हिसाब से पैकेज मैनेजर का इस्तेमाल करके सिस्टम पैकेज इंस्टॉल करने के तरीके से अलग है. जैसे, APT (apt और apt-get), Homebrew (brew), और dpkg. यह साफ़ तौर पर बताना कि किन सिस्टम पैकेज की ज़रूरत है, इसका मतलब है कि Firebase Studio वर्कस्पेस को शेयर करना और फिर से बनाना आसान है.

लोकल नोड बाइनरी का इस्तेमाल करना

आपकी लोकल मशीन की तरह ही, स्थानीय तौर पर इंस्टॉल किए गए node पैकेज (उदाहरण के लिए, आपके package.json में तय किए गए पैकेज) से जुड़ी बाइनरी को टर्मिनल पैनल में चलाया जा सकता है. इसके लिए, उन्हें npx कमांड के साथ इस्तेमाल करें.

एक और सुविधा के तौर पर, अगर आप किसी ऐसी डायरेक्ट्री में हैं जिसमें node_modules फ़ोल्डर (जैसे, किसी वेब प्रोजेक्ट की रूट डायरेक्ट्री) मौजूद है, तो स्थानीय तौर पर इंस्टॉल की गई बाइनरी को npx प्रीफ़िक्स के बिना सीधे तौर पर शुरू किया जा सकता है.

gcloud कॉम्पोनेंट जोड़ना

Google Cloud के लिए gcloud सीएलआई का डिफ़ॉल्ट कॉन्फ़िगरेशन, सभी Firebase Studio वर्कस्पेस के लिए उपलब्ध है.

अगर आपको ज़्यादा कॉम्पोनेंट चाहिए, तो उन्हें अपनी dev.nix फ़ाइल में जोड़ा जा सकता है:

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

IDE एक्सटेंशन जोड़ना

Firebase Studio में एक्सटेंशन इंस्टॉल करने के लिए, OpenVSX एक्सटेंशन रजिस्ट्री का इस्तेमाल दो तरीकों से किया जा सकता है:

  • एक्सटेंशन ढूंढने और इंस्टॉल करने के लिए, Firebase Studio में एक्सटेंशन पैनल का इस्तेमाल करें. यह तरीका, उपयोगकर्ता के हिसाब से बने एक्सटेंशन के लिए सबसे अच्छा है. जैसे:

    • पसंद के मुताबिक रंग वाली थीम
    • एडिटर इम्यूलेशन, जैसे कि VSCodeVim
  • अपनी 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"
  ];
  ...
}

सामान्य सेवाएं जोड़ना

Firebase Studio, उन सामान्य सेवाओं के लिए आसान सेटअप और कॉन्फ़िगरेशन भी उपलब्ध कराता है जिनकी आपको डेवलपमेंट के दौरान ज़रूरत पड़ सकती है. इनमें ये शामिल हैं:

  • कंटेनर
    • Docker (services.docker.*)
  • मैसेज सेवा
    • Pub/Sub एमुलेटर (services.pubsub.*)
  • डेटाबेस
    • MySQL (services.mysql.*)
    • Postgres (services.postgres.*)
    • Redis (services.redis.*)
    • स्पैनर (services.spanner.*)

अपने फ़ाइल फ़ोल्डर में इन सेवाओं को चालू करने के बारे में जानने के लिए, dev.nix रेफ़रंस के services.* भाग देखें.

झलक को पसंद के मुताबिक बनाना

ऐप्लिकेशन की झलक को पसंद के मुताबिक बनाने के तरीके के बारे में जानने के लिए, अपने ऐप्लिकेशन की झलक देखना लेख पढ़ें.

अपने फ़ाइल फ़ोल्डर का आइकॉन सेट करना

अपने फ़ाइल फ़ोल्डर के लिए पसंद के मुताबिक आइकॉन चुना जा सकता है. इसके लिए, .idx डायरेक्ट्री में dev.nix फ़ाइल के लेवल पर, icon.png नाम वाली PNG फ़ाइल डालें. इसके बाद, Firebase Studio इस आइकॉन का इस्तेमाल करके, आपके डैशबोर्ड में आपके वर्कस्पेस को दिखाएगा.

इस फ़ाइल को सोर्स कंट्रोल (जैसे, Git) में चेक किया जा सकता है. इसलिए, यह एक अच्छा तरीका है, जिससे आपके प्रोजेक्ट पर काम करने वाले सभी लोग, Firebase Studio का इस्तेमाल करते समय आपके प्रोजेक्ट के लिए एक ही आइकॉन देख सकें. साथ ही, फ़ाइल अलग-अलग Git शाखाओं में अलग-अलग हो सकती है. इसलिए, इस आइकॉन का इस्तेमाल करके, बीटा और प्रोडक्शन ऐप्लिकेशन वर्कस्पेस के बीच और अन्य कामों के लिए, विज़ुअल तौर पर अंतर किया जा सकता है.

पसंद के मुताबिक बनाए गए टेंप्लेट को टेंप्लेट में बदलना

अपने एनवायरमेंट कॉन्फ़िगरेशन को "स्टार्टर एनवायरमेंट" में बदलने के लिए, कस्टम टेंप्लेट बनाएं दस्तावेज़ देखें. इस एनवायरमेंट का इस्तेमाल, कोई भी व्यक्ति नए प्रोजेक्ट बनाने के लिए कर सकता है.

अपनी पसंद के मुताबिक बनाने के सभी विकल्पों के बारे में जानें

एनवायरमेंट कॉन्फ़िगरेशन स्कीमा के बारे में ज़्यादा जानकारी के लिए, dev.nix रेफ़रंस देखें.

अगले चरण