इस पेज पर, आपके Workspace एनवायरमेंट की कॉन्फ़िगरेशन फ़ाइल के स्कीमा के बारे में जानकारी दी गई है. यह फ़ाइल हमेशा .idx/dev.nix पर होनी चाहिए.
Nix भाषा के बारे में जानने के लिए, Nix भाषा का आधिकारिक ट्यूटोरियल देखें.
पैकेज
एनवायरमेंट में इंस्टॉल किए जाने वाले पैकेज.
इंस्टॉल करने के लिए पैकेज चुनने के लिए, pkgs आर्ग्युमेंट का इस्तेमाल किया जा सकता है. उदाहरण के लिए
pkgs.python3. ध्यान दें कि pkgs का कॉन्टेंट, चुने गए channel चैनल के विकल्प पर निर्भर करता है.
उदाहरण:
{pkgs, ...}: {
channel = "stable-24.11";
packages = [pkgs.vim];
}
उपलब्ध पैकेज यहां खोजे जा सकते हैं: स्टेबल या अनस्टेबल.
टाइप: पैकेज की सूची
डिफ़ॉल्ट: [ ]
चैनल
इस्तेमाल किया जाने वाला nixpkgs चैनल.
यह चैनल, pkgs आर्ग्युमेंट का कॉन्टेंट तय करता है.
टाइप: स्ट्रिंग (उदाहरण के लिए, "stable-24.11", "stable-25.05", "unstable")
डिफ़ॉल्ट: "stable-24.11"
env
डेवलपर एनवायरमेंट में सेट किए गए एनवायरमेंट वैरिएबल.
इन्हें आपके सभी शेल और प्रीव्यू सर्वर पर भेजा जाता है. अगर आपके ऐप्लिकेशन के लिए, वैरिएबल का कोई खास सेट ज़रूरी है, तो एनवायरमेंट वैरिएबल खास तौर पर काम के हो सकते हैं.
हर वैरिएबल की वैल्यू, स्ट्रिंग या स्ट्रिंग की सूची हो सकती है. सूची में शामिल स्ट्रिंग को कोलन वर्णों के साथ जोड़ा जाता है.
PATH एक सूची होनी चाहिए, क्योंकि इसे हमेशा बढ़ाया जाता है और कभी भी पूरी तरह से बदला नहीं जाता.
उदाहरण:
{pkgs, ...}: {
env = {
HELLO = "world";
# append an entry to PATH
PATH = ["/some/path/bin"];
};
}
टाइप: एट्रिब्यूट सेट ऑफ़ ((स्ट्रिंग की सूची) या कुछ भी)
डिफ़ॉल्ट: { }
idx.extensions
कोड एक्सटेंशन जिन्हें आपको अपने IDX Workspace में इंस्टॉल करना है.
यह पूरी तरह से क्वालिफ़ाइड एक्सटेंशन आईडी की सूची है. उदाहरण के लिए, ${publisherId}.${extensionId}.
टाइप: (खाली नहीं है या पाथ) की सूची
डिफ़ॉल्ट: [ ]
idx.previews.enable
IDX प्रीव्यू चालू करने के लिए, इसे 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 लॉन्च ऐक्टिविटी
टाइप: स्ट्रिंग
डिफ़ॉल्ट: ""
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
Workspace बनाने और पहली बार खोलने पर एक्ज़ीक्यूट किए जाने वाले कमांड.
यह डेवलपमेंट एनवायरमेंट सेट अप करने में काम आ सकता है. उदाहरण के लिए, यहां हम 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
Workspace खोलने पर एक्ज़ीक्यूट किए जाने वाले कमांड.
यह बिल्ड वॉचर शुरू करने में काम आ सकता है. उदाहरण के लिए, यहां हम दो कमांड को चलाने के लिए बता रहे हैं:
{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
];
# ...
}
कस्टम .nix फ़ाइल इंपोर्ट करने की कई वजहें हो सकती हैं
dev.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
टाइप: पाथ की सूची
डिफ़ॉल्ट: [ ]
सेवाएं
Workspace खुलने पर चालू की जाने वाली सामान्य सेवाएं.
उदाहरण के लिए, Postgres को चालू करने और pgvector एक्सटेंशन का इस्तेमाल करने के लिए, dev.nix में यह जोड़ें:
services.postgres = {
extensions = ["pgvector"];
enable = true;
};
यहां दिए गए सेक्शन में, इस्तेमाल की जा सकने वाली सभी सेवाओं और उनके कॉन्फ़िगर किए जा सकने वाले विकल्पों की सूची दी गई है.
services.docker.enable
रूटलेस Docker को चालू करना है या नहीं.
टाइप: बूलियन
डिफ़ॉल्ट: false
उदाहरण: true
services.mongodb.enable
MongoDB सर्वर को चालू करना है या नहीं.
टाइप: बूलियन
डिफ़ॉल्ट: false
उदाहरण: true
services.mongodb.package
इस्तेमाल किया जाने वाला MongoDB पैकेज.
टाइप: पैकेज
डिफ़ॉल्ट: <derivation mongodb-6.0.11>
services.mongodb.port
यह उस पोर्ट को कॉन्फ़िगर करता है जिस पर Mongod को सिग्नल पाने के लिए कॉन्फ़िगर किया जाएगा.
डिफ़ॉल्ट रूप से, टीसीपी बंद होता है और 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 एम्युलेटर को चालू करना है या नहीं.
टाइप: बूलियन
डिफ़ॉल्ट: 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