تخصيص مساحة العمل في Firebase Studio

يتيح لك Firebase Studio تخصيص مساحة عملك لتلبية الاحتياجات الفريدة لمشروعك من خلال تحديد ملف إعدادات.idx/dev.nix واحد يصف:

  • أدوات النظام التي يجب أن تكون قادرًا على تشغيلها (على سبيل المثال، من Terminal)، مثل برامج التحويل البرمجي أو ملفات ثنائية أخرى
  • الإضافات التي تحتاج إلى تثبيتها (مثل لغة البرمجة التي تتوافق معها)
  • الطريقة التي يجب أن تظهر بها معاينات تطبيقك (مثل، أوامر تشغيل خادم الويب)
  • متغيّرات البيئة الشاملة المتاحة للخوادم المحلية التي تعمل في مساحة العمل

اطّلِع على مرجع dev.nix للحصول على وصف كامل للميزات المتاحة.

نيك وFirebase Studio

يستخدم Firebase Studio Nix لتحديد إعدادات البيئة لكل مساحة عمل. على وجه التحديد، Firebase Studio يستخدم:

  • لغة البرمجة Nix لوصف بيئات مساحات العمل ‫Nix هي لغة برمجة وظيفية. تلتزم السمات ومكتبات الحِزم التي يمكنك تحديدها في ملف dev.nix ببنية مجموعة سمات Nix.

  • مدير حِزم Nix لإدارة أدوات النظام المتاحة لمساحة عملك يشبه ذلك مديري الحِزم الخاصة بنظام التشغيل، مثل APT (apt وapt-get) وHomebrew (brew) وdpkg.

بما أنّ بيئات Nix قابلة للاستنساخ وبيانية، يعني ذلك في سياق Firebase Studio أنّه يمكنك مشاركة ملف إعدادات Nix كجزء من مستودع Git لضمان حصول كل من يعمل على مشروعك على إعدادات البيئة نفسها.

مثال أساسي

يوضّح المثال التالي إعداد بيئة أساسي يتيح معاينات التطبيق:

{ 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 وإضافته إلى عنصر packages في ملف dev.nix مع إضافة البادئة 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) في لوحة Terminal من خلال استدعائها باستخدام الرمز المبرمَج npx.

كميزة إضافية، إذا كنت في دليل يتضمّن مجلد node_modules (مثل الدليل الجذر لمشروع ويب)، يمكن استدعاء الملفات الثنائية المثبَّتة محليًا مباشرةً بدون البادئة npx.

إضافة gcloud مكوّن

تتوفّر إعدادات تلقائية لواجهة برمجة التطبيقات gcloud لنظام التشغيل Google Cloud في جميع مساحات عمل 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. سيتم تثبيت هذه الإضافات تلقائيًا عند مشاركة إعدادات مساحة العمل. يُعدّ هذا الأسلوب الأنسب للإضافات الخاصة بالمشروع، مثل:

    • إضافات لغات البرمجة، بما في ذلك برامج تصحيح الأخطاء الخاصة بلغة معيّنة
    • الإضافات الرسمية لخدمات السحابة الإلكترونية المستخدَمة في مشروعك
    • أدوات تنسيق الرموز البرمجية

بالنسبة إلى المنهج الأخير، يمكنك تضمين إضافات IDE في ملف dev.nix عن طريق العثور على معرّف الإضافة المؤهّل بالكامل (بالتنسيق <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.*)
    • Spanner (services.spanner.*)

للحصول على تفاصيل حول تفعيل هذه الخدمات في مساحة عملك، يُرجى الاطّلاع على services.* أجزاء من مرجع dev.nix.

تخصيص المعاينات

لمعرفة تفاصيل عن كيفية تخصيص معاينات التطبيقات، يُرجى الاطّلاع على مقالة معاينة تطبيقك.

ضبط رمز مساحة العمل

يمكنك اختيار رمز مخصّص لمساحة العمل من خلال وضع ملف PNG باسم icon.png داخل الدليل .idx على المستوى نفسه لملف dev.nix. سيستخدم Firebase Studio هذا الرمز بعد ذلك لتمثيل مساحة عملك في لوحة البيانات.

ولأنّه يمكن التحقّق من هذا الملف في أداة التحكّم في المصدر (مثل Git)، فإنّ هذا الإجراء يمثّل طريقة جيدة لمساعدة كل من يعمل على مشروعك في الاطّلاع على الرمز نفسه لمشروعك عند استخدام Firebase Studio. ولأنّ الملف يمكن أن يختلف في مختلف مشاريع Git، يمكنك استخدام هذا الرمز للتمييز بصريًا بين مساحات عمل التطبيقات التجريبية وتلك المخصّصة للإصدارات العلنية، بالإضافة إلى أغراض أخرى.

تحويل تخصيصاتك إلى نموذج

لتحويل إعدادات البيئة إلى "بيئة بدء" يمكن لأي مستخدم استخدامها لإنشاء مشاريع جديدة، اطّلِع على مستندات إنشاء نماذج مخصّصة.

الاطّلاع على جميع خيارات التخصيص

اطّلِع على مرجع dev.nix للحصول على وصف detailed لتصميم إعدادات البيئة.

الخطوات التالية