تخصيص مساحة عمل IDX

تتيح لك Project IDX تخصيص مساحة عملك وفقًا للاحتياجات الفريدة لمشروعك. من خلال تحديد ملف إعداد .idx/dev.nix واحد يصف ما يلي:

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

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

Nix وIDX

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

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

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

ولأن بيئات Nix قابلة للتكرار وتوضيحية، في سياق IDX، ويعني هذا أنه يمكنك مشاركة ملف إعداد 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_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";
      };
    };
  };
}

إضافة أدوات النظام

لإضافة أدوات نظام إلى مساحة العمل الخاصة بك، مثل برامج التجميع أو برامج واجهة سطر الأوامر للخدمات السحابية، عليك العثور على معرّف الحزمة الفريد في حزمة 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
  ];
  ...
}

يختلف هذا عن الطريقة التي يمكنك بها عادةً تثبيت حزم النظام باستخدام تطبيقات إدارة الحزم الخاصة بنظام التشغيل، مثل APT (apt وapt-get) وHomebrew (brew)، وdpkg. تقديم وصف دقيق لحزم النظام تعني الحاجة إلى سهولة مشاركة مساحات عمل IDX وإعادة إنتاجها.

استخدام البرامج الثنائية للعقدة المحلية

وكما هو الحال على جهازك المحلي، فإن البرامج الثنائية ذات الصلة بالعقدة المثبتة محليًا الحزم (أي الحِزم المحدّدة في package.json) يمكن تنفيذها في لوحة المحطة الطرفية من خلال استدعائها باستخدام npx الأمر.

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

إضافة مكوّنَين (gcloud)

ضبط تلقائي لـ gcloud CLI في Google Cloud متاحة لجميع IDX. ومساحات العمل.

وإذا كنت بحاجة إلى مكوّنات إضافية، يمكنك إضافتها إلى ملف dev.nix، مثل لذلك:

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

إدراج إضافات IDE

يمكنك تثبيت الإضافات في IDX باستخدام OpenVSX سجل الإضافات بطريقتين:

  • باستخدام لوحة الإضافات في IDX للاطّلاع على المعلومات وتثبيتها الإضافات. يناسب هذا الأسلوب الإضافات الخاصة بالمستخدم، مثل:

    • مظاهر الألوان المخصصة
  • من خلال إدراج امتدادات في ملف 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"
  ];
  ...
}

إضافة خدمات مشتركة

توفّر IDX أيضًا عملية إعداد وتكوين مبسّطة للخدمات الشائعة التي قد تحتاج إليها أثناء التطوير، بما في ذلك:

  • الحاويات
    • Docker (services.docker.*)
  • المراسلة
    • محاكي نشر/اشتراك (services.pubsub.*)
  • قواعد البيانات
    • MySQL (services.mysql.*)
    • Postgres (services.postgres.*)
    • ريديس (services.redis.*)
    • مفتاح البراغي (services.spanner.*)

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

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

للحصول على تفاصيل حول كيفية تخصيص معاينات التطبيق، يمكنك الاطّلاع على مستندات والمعاينات.

إعداد رمز مساحة العمل

يمكنك اختيار رمز مخصص لمساحة العمل، عن طريق وضع ملف PNG باسم icon.png بجانب الملف dev.nix داخل الدليل .idx IDX بعد ذلك هذا الرمز لتمثيل مساحة العمل في لوحة البيانات.

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

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

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

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

اطّلِع على مرجع dev.nix للحصول على مزيد من التفاصيل. وصف مخطط تهيئة البيئة.