مرجع dev.nix

تتضمّن هذه الصفحة تفاصيل عن مخطط ملف إعداد بيئة Workspace، والذي يجب أن يكون متوفّرًا دائمًا على .idx/dev.nix.

للاطّلاع على مزيد من المعلومات حول لغة Nix، يمكنك الاطّلاع على البرنامج التعليمي الرسمي للغة Nix.

طرود

الحزم المطلوب تثبيتها في البيئة.

يمكنك استخدام الوسيطة pkgs لاختيار حِزم لتثبيتها، على سبيل المثال pkgs.python3. يُرجى العِلم أنّ محتوى pkgs يعتمد على خيار القناة "channel" الذي تم تحديده.

مثال:

{pkgs, ...}: {
  channel = "stable-23.11";
  packages = [pkgs.vim];
}

يمكنك البحث عن الحزم المتوفرة هنا: stable-23.11 أو unstable.

النوع: قائمة بحزم

تلقائي: [ ]

العضويات

nixpkgs لاستخدامها.

تحدد هذه القناة محتوى الوسيطة pkgs.

النوع: أحد "stable-23.05" أو "stable-23.11" أو "unstable"

تلقائي: "stable-23.11"

env

هي متغيّرات البيئة التي يتم ضبطها داخل بيئة المطوِّر.

ويتم نشرها على جميع واجهات الأوامر وخادم المعاينة. يمكن أن تكون متغيرات البيئة مفيدة بشكل خاص إذا كان تطبيقك يتطلب مجموعة محددة من المتغيرات.

مثال:

{pkgs, ...}: {
  env = {
    HELLO = "world";
  };
}

النوع: مجموعة السمات من أي عنصر

تلقائي: { }

idx.extensions

إضافات الرموز التي تريد تثبيتها في مساحة عمل IDX

هذه قائمة بأرقام تعريف الإضافات المؤهّلة بالكامل، على سبيل المثال ${publisherId}.${extensionId}.

يمكنك العثور على قائمة بالإضافات المتاحة على فتح VSX Registry وإدخالها في ملف dev.nix بحلول ${publisherId}.${extensionId}.

النوع: قائمة من (سلسلة أو مسار غير فارغ)

تلقائي: [ ]

idx.previews.enable

يجب ضبط القيمة على "true" لتفعيل معاينات IDX.

تتيح لك هذه الميزة تشغيل تطبيقاتك وإعادة تحميلها تلقائيًا أثناء تطويرها.

النوع: قيمة منطقية

تلقائي: true

مثال: true

idx.previews.previews

معاينة الإعدادات

حدِّد الأوامر التي تنفّذها IDX في بيئة المطوِّر.

مثال:

{pkgs, ...}: {
  idx.previews = {
    enable = true;
    previews = {
      web = {
        command = ["yes"];
        cwd = "subfolder";
        manager = "web";
        env = {
          HELLO = "world";
        };
      };
    };
  };
}

النوع: مجموعة السمات (الوحدة الفرعية)

تلقائي: { }

idx.previews.previews.<name>.command

أمر التنفيذ

النوع: قائمة بالسلاسل

تلقائي: [ ]

idx.previews.previews.<name>.cwd

دليل العمل

النوع: سلسلة

تلقائي: ""

idx.previews.previews.<name>.env

متغيرات البيئة المطلوب ضبطها.

Type: مجموعة السمات من السلاسل

تلقائي: { }

idx.previews.previews.<name>.manager

مدير

النوع: أحد "web" أو "flutter"

idx.workspace.onCreate

أوامر يتم تنفيذها عند إنشاء مساحة عمل وفتحها لأول مرة.

ويمكن الاستفادة من ذلك في إعداد بيئة التطوير. على سبيل المثال، سنحدّد هنا npm install لتشغيله:

{pkgs, ...}: {
  idx.workspace.onCreate = {
    npm-install = "npm install";
  };
}

النوع: مجموعة السمات (مسار أو سلسلة)

تلقائي: { }

idx.workspace.onStart

أوامر يتم تنفيذها عند فتح مساحة العمل.

يمكن أن يكون ذلك مفيدًا في تشجيع المشاهدين على الاشتراك. على سبيل المثال، نحدّد هنا أمرَين لتشغيلهما:

{pkgs, ...}: {
  idx.workspace.onStart = {
    npm-watch-fe = "npm run watch:frontend";
    npm-watch-be = "npm run watch:backend";
  };
}

النوع: مجموعة السمات (مسار أو سلسلة)

تلقائي: { }

services.docker.enable

ما إذا كان سيتم تفعيل قاعدة الإرساء بدون جذر.

النوع: قيمة منطقية

تلقائي: false

مثال: true

services.mysql.enable

تحديد ما إذا كان سيتم تفعيل خادم MySQL أم لا.

يتم إعداد الخادم باستخدام جذر مستخدم بدون كلمة مرور. لإنشاء مستخدمين إضافيين وإنشاء قواعد بيانات، استخدم mysql -u root. .

النوع: قيمة منطقية

تلقائي: false

مثال: true

services.mysql.package

حزمة MySQL للاستخدام.

Type: حزمة

تلقائي: pkgs.mysql

مثال: pkgs.mysql80

services.postgres.enable

تحديد ما إذا كان سيتم تفعيل خادم PostgreSQL

النوع: قيمة منطقية

تلقائي: false

مثال: true

services.postgres.package

حزمة PostgreSQL للاستخدام.

Type: حزمة

تلقائي: pkgs.postgresql

مثال: pkgs.postgresql_15

services.postgres.extensions

إضافات Postgres المطلوب تثبيتها.

تلقائي: [ ]

مثال: [ "pgvector" "postgis" ];

services.pubsub.enable

يمكنك اختيار ما إذا كنت تريد تفعيل محاكي Google Pub/Sub.

ويمكن العثور على مزيد من المستندات حول استخدام المحاكي هنا: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator .

النوع: قيمة منطقية

تلقائي: false

مثال: true

services.pubsub.port

تضبط هذه السياسة منفذ المنفذ Pub/Sub الذي سيستمع إليه.

النوع: عدد صحيح 16 بت غير موقَّع، يتراوح بين 0 و65535 (كلاهما شاملاً)

تلقائي: 8085

services.pubsub.project-id

رقم تعريف المشروع المطلوب استخدامه لتشغيل محاكي النشر/الاشتراك هذا المشروع مخصص للاختبار فقط، ولا يجب أن يكون موجودًا ويتم استخدامه محليًا فقط.

النوع: سلسلة تتطابق مع النمط [a-z][a-z0-9-]{5,29}

تلقائي: "idx-pubsub-emulator"

services.redis.enable

ما إذا كان سيتم تفعيل خادم Redis.

النوع: قيمة منطقية

تلقائي: false

مثال: true

services.redis.port

تضبط هذه السياسة المنفذ الذي سيستمع إليه Redis.

تكون ميزة tcp غير مفعَّلة تلقائيًا، ولا يستمع redis إلا إلى /tmp/redis/redis.sock.

النوع: عدد صحيح 16 بت غير موقَّع، يتراوح بين 0 و65535 (كلاهما شاملاً)

تلقائي: 0

services.spanner.enable

يمكنك اختيار ما إذا كان سيتم تفعيل محاكي Google Cloud Spanner.

النوع: قيمة منطقية

تلقائي: false

مثال: true

services.spanner.fault-injection

تحديد ما إذا كان سيتم تفعيل إدخال خطأ عشوائي في المعاملات.

النوع: قيمة منطقية

تلقائي: false

مثال: true

services.spanner.grpc-port

منفذ TCP الذي ينبغي ربط المحاكي به.

النوع: عدد صحيح 16 بت غير موقَّع، يتراوح بين 0 و65535 (كلاهما شاملاً)

تلقائي: 9010

services.spanner.rest-port

المنفذ الذي يتم فيه إرسال طلبات REST

النوع: عدد صحيح 16 بت غير موقَّع، يتراوح بين 0 و65535 (كلاهما شاملاً)

تلقائي: 9020