مرجع dev.nix

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

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

طرود

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

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

مثال:

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

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

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

تلقائي: [ ]

قناة

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

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

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

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

env

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

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

يمكن أن تكون قيمة كل متغير سلسلة أو قائمة سلاسل. تشير رسالة الأشكال البيانية ويكون الأخير مترابطًا، ويتخللها نقطتين.

يجب أن يكون PATH قائمة، حيث يتم توسيعها دائمًا ولا يتم استبدالها بشكل كامل.

مثال:

{pkgs, ...}: {
  env = {
    HELLO = "world";
    # append an entry to PATH
    PATH = ["/some/path/bin"];
  };
}

النوع: مجموعة السمات ((قائمة السلسلة) أو أي عنصر)

تلقائي: { }

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>.activity

نشاط إطلاق Android

النوع: سلسلة

تلقائي: ""

idx.previews.previews.<name>.command

أمر التنفيذ

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

تلقائي: [ ]

idx.previews.previews.<name>.cwd

دليل العمل

النوع: سلسلة

تلقائي: ""

idx.previews.previews.<name>.env

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

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

تلقائي: { }

idx.previews.previews.<name>.manager

مدير

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

idx.workspace.onCreate

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

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

{pkgs, ...}: {
  idx.workspace.onCreate = {
    npm-install = "npm install";
    # files to open when the workspace is first opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

النوع: مجموعة السمات من (مسار أو سلسلة أو ({ openFiles = [string ];}))

تلقائي: { }

idx.workspace.onStart

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

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

{pkgs, ...}: {
  idx.workspace.onStart = {
    npm-watch-fe = "npm run watch:frontend";
    npm-watch-be = "npm run watch:backend";
    # files to open when the workspace is (re)opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

النوع: مجموعة السمات من (مسار أو سلسلة أو ({ openFiles = [string ];}))

تلقائي: { }

services.docker.enable

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

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

تلقائي: false

مثال: true

services.mongodb.enable

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

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

تلقائي: false

مثال: true

services.mongodb.package

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

Type: حزمة

تلقائي: <derivation mongodb-6.0.11>

services.mongodb.port

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

تكون ميزة tcp غير مفعَّلة تلقائيًا ولا يستمع Mongod إلا إلى /tmp/mongodb/mongodb.sock. للاتصال، استخدِم سلسلة الاتصال "mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock"

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

تلقائي: 0

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.enableTcp

لتحديد ما إذا كان سيتم تفعيل Postgres للاستماع عبر بروتوكول TCP.

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

تلقائي: true

مثال: true

services.postgres.package

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

Type: حزمة

تلقائي: pkgs.postgresql

مثال: pkgs.postgresql_15

services.postgres.extensions

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

النوع: قائمة لـ (واحد من "العمر" أو "apache_datasketches" أو "cstore_fdw" أو "hyopg", "jsonb_deep_sum", "periods", "pg_auto_failover", "pg_bigm", "pg_cron", "pg_ed25519" و"pg_embedding" و"pg_hint_plan" و"pg_hll" و"pg_ivm" و"pg_net" "pg_partman"، "pg_rational"، "pg_relusage"، "pg_repack"، "pg_safeupdate"، "pg_likeity" و"pg_topn" و"pg_uuidv7" و"pgaudit" و"pgjwt" و"pgroonga", "pgrouting" و"pgsql-http" و"pgtap" و"pgect" و"plpgsql_check" و"plr" و"plv8" "postgis"، و"promscale_extension"، و"repmgr"، و"rum"، و"smlar" و"tds_fdw", "temporal_tables", "timescaledb", "timescaledb-apache", "timescaledb_ Toolkit", "tsearch_extras"، و"tsja"، و"wal2json")

تلقائي: [ ]

مثال: [ "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