تتضمّن هذه الصفحة تفاصيل عن المخطّط لبيئة 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