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