इस पेज पर, आपके वर्कस्पेस एनवायरमेंट कॉन्फ़िगरेशन फ़ाइल के स्कीमा के बारे में जानकारी दी गई है. यह फ़ाइल हमेशा .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", "stable-24.05", "stable-24.11", "unstable"
डिफ़ॉल्ट: "stable-23.11"
env
डेवलपर एनवायरमेंट में सेट किए गए एनवायरमेंट वैरिएबल.
इन्हें आपके सभी शेल और प्रीव्यू सर्वर पर भेजा जाता है. अगर आपके ऐप्लिकेशन को वैरिएबल के किसी खास सेट की ज़रूरत है, तो एनवायरमेंट वैरिएबल खास तौर पर मददगार हो सकते हैं.
हर वैरिएबल की वैल्यू, स्ट्रिंग या स्ट्रिंग की सूची हो सकती है. बाद वाले को कोलन वर्णों के साथ जोड़ दिया जाता है.
PATH
एक सूची होनी चाहिए, क्योंकि इसे हमेशा बढ़ाया जाता है और कभी भी पूरी तरह से बदला नहीं जाता.
उदाहरण:
{pkgs, ...}: {
env = {
HELLO = "world";
# append an entry to PATH
PATH = ["/some/path/bin"];
};
}
टाइप: एट्रिब्यूट सेट ऑफ़ ((list of string) or anything)
डिफ़ॉल्ट: { }
idx.extensions
कोड एक्सटेंशन, जिन्हें आपको अपने IDX वर्कस्पेस में इंस्टॉल करना है.
यह पूरी तरह क्वालिफ़ाइड एक्सटेंशन आईडी की सूची है. उदाहरण के लिए, ${publisherId}.${extensionId}
.
Open VSX Registry पर जाकर, उपलब्ध एक्सटेंशन की सूची देखी जा सकती है. इसके बाद, ${publisherId}.${extensionId}
का इस्तेमाल करके, उन्हें अपनी dev.nix
फ़ाइल में डाला जा सकता है.
टाइप: (non-empty string or path) की सूची
डिफ़ॉल्ट: [ ]
idx.previews.enable
आईडीएक्स की झलक दिखाने की सुविधा चालू करने के लिए, इसे true
पर सेट करें.
इस सुविधा की मदद से, ऐप्लिकेशन डेवलप करते समय उन्हें अपने-आप चलाया और फिर से लोड किया जा सकता है.
टाइप: बूलियन
डिफ़ॉल्ट: 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 Launch Activity
टाइप: स्ट्रिंग
डिफ़ॉल्ट: ""
idx.previews.previews.<name>.command
एक्ज़ीक्यूट करने के लिए निर्देश
टाइप: स्ट्रिंग की सूची
डिफ़ॉल्ट: [ ]
idx.previews.previews.<name>.cwd
मौजूदा डायरेक्ट्री
टाइप: स्ट्रिंग
डिफ़ॉल्ट: ""
idx.previews.previews.<name>.env
सेट किए जाने वाले एनवायरमेंट वैरिएबल.
टाइप: स्ट्रिंग का एट्रिब्यूट सेट
डिफ़ॉल्ट: { }
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 ];}))
डिफ़ॉल्ट: { }
इंपोर्ट
इंपोर्ट की गई फ़ाइल की मदद से, dev.nix फ़ाइल को बढ़ाया जा सकता है.
# dev.nix
{ pkgs, ... }: {
imports = [
./some-file.nix
];
# ...
}
# some-file.nix
{ pkgs, ... }: {
packages = [
pkgs.python3
];
# ...
}
dev.nix
में कस्टम .nix
फ़ाइल इंपोर्ट करने की कई वजहें हो सकती हैं:
आपकी
dev.nix
फ़ाइल बड़ी है और आपको इसे मॉड्यूलर बनाना है, ताकि इसे आसानी से मैनेज किया जा सके.{ pkgs, ... }: { channel = "stable-24.11"; # ... imports = [ ./env-cfg.nix ./preview-config.nix ]; }
आपको अपने स्थानीय एनवायरमेंट के हिसाब से विकल्प कॉन्फ़िगर करने हैं और फ़ाइल को अपनी
.gitignore
सूची में जोड़ना है.# dev.nix { pkgs, lib, ... }: { # ... imports = lib.optionals (builtins.pathExists ./dev.local.nix ) [ ./dev.local.nix ]; }
#.gitignore .idx/dev.local.nix
टाइप: पाथ की सूची
डिफ़ॉल्ट: [ ]
सेवाएं
वर्कस्पेस खुलने पर चालू की जाने वाली सामान्य सेवाएं.
उदाहरण के लिए, Postgres को चालू करने और pgvector
एक्सटेंशन का इस्तेमाल करने के लिए, dev.nix
में यह जोड़ें:
services.postgres = {
extensions = ["pgvector"];
enable = true;
};
यहां दिए गए सेक्शन में, उन सभी सेवाओं के बारे में बताया गया है जो इस सुविधा के साथ काम करती हैं. साथ ही, इनके कॉन्फ़िगर किए जा सकने वाले विकल्पों के बारे में भी बताया गया है.
services.docker.enable
रूटलेस डॉकर को चालू करना है या नहीं.
टाइप: बूलियन
डिफ़ॉल्ट: false
उदाहरण: true
services.mongodb.enable
MongoDB सर्वर को चालू करना है या नहीं.
टाइप: बूलियन
डिफ़ॉल्ट: false
उदाहरण: true
services.mongodb.package
इस्तेमाल करने के लिए MongoDB पैकेज.
टाइप: पैकेज
डिफ़ॉल्ट: <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 पैकेज.
टाइप: पैकेज
डिफ़ॉल्ट: pkgs.mysql
उदाहरण: pkgs.mysql80
services.postgres.enable
PostgreSQL सर्वर को चालू करना है या नहीं.
टाइप: बूलियन
डिफ़ॉल्ट: false
उदाहरण: true
services.postgres.enableTcp
यह तय करता है कि टीसीपी पर सुनने के लिए Postgres को चालू करना है या नहीं.
टाइप: बूलियन
डिफ़ॉल्ट: true
उदाहरण: true
services.postgres.package
इस्तेमाल करने के लिए PostgreSQL पैकेज.
टाइप: पैकेज
डिफ़ॉल्ट: pkgs.postgresql
उदाहरण: pkgs.postgresql_15
services.postgres.extensions
Postgres एक्सटेंशन इंस्टॉल करने के लिए.
टाइप: सूची में इनमें से कोई एक एक्सटेंशन शामिल होता है: "age", "apache_datasketches", "cstore_fdw", "hypopg", "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_similarity", "pg_topn", "pg_uuidv7", "pgaudit", "pgjwt", "pgroonga", "pgrouting", "pgsql-http", "pgtap", "pgvector", "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
Pub/Sub एम्युलेटर को चलाने के लिए इस्तेमाल किया जाने वाला प्रोजेक्ट आईडी. यह प्रोजेक्ट सिर्फ़ टेस्टिंग के लिए है. इसका मौजूद होना ज़रूरी नहीं है और इसका इस्तेमाल सिर्फ़ स्थानीय तौर पर किया जाता है.
टाइप: स्ट्रिंग, जो [a-z][a-z0-9-]{5,29} पैटर्न से मेल खाती हो
डिफ़ॉल्ट: "idx-pubsub-emulator"
services.redis.enable
Redis सर्वर को चालू करना है या नहीं.
टाइप: बूलियन
डिफ़ॉल्ट: false
उदाहरण: true
services.redis.port
इस विकल्प से, Redis के उस पोर्ट को कॉन्फ़िगर किया जाता है जिस पर वह सुनेगा.
डिफ़ॉल्ट रूप से, टीसीपी बंद होता है और Redis सिर्फ़ /tmp/redis/redis.sock पर सुनता है.
टाइप: 16 बिट का बिना हस्ताक्षर वाला पूर्णांक; 0 से 65535 के बीच (दोनों शामिल)
डिफ़ॉल्ट: 0
services.spanner.enable
Google Cloud Spanner Emulator को चालू करना है या नहीं.
टाइप: बूलियन
डिफ़ॉल्ट: false
उदाहरण: true
services.spanner.fault-injection
लेन-देन में रैंडम फ़ॉल्ट इंजेक्शन की सुविधा चालू करनी है या नहीं.
टाइप: बूलियन
डिफ़ॉल्ट: false
उदाहरण: true
services.spanner.grpc-port
वह टीसीपी पोर्ट जिससे एम्युलेटर को बाइंड किया जाना चाहिए.
टाइप: 16 बिट का बिना हस्ताक्षर वाला पूर्णांक; 0 से 65535 के बीच (दोनों शामिल)
डिफ़ॉल्ट: 9010
services.spanner.rest-port
वह पोर्ट जिस पर REST अनुरोध पूरे किए जाते हैं
टाइप: 16 बिट का बिना हस्ताक्षर वाला पूर्णांक; 0 से 65535 के बीच (दोनों शामिल)
डिफ़ॉल्ट: 9020