इस पेज पर, आपके वर्कस्पेस एनवायरमेंट की कॉन्फ़िगरेशन फ़ाइल के स्कीमा के बारे में जानकारी होती है. यह फ़ाइल हमेशा .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"];
};
}
टाइप: ((स्ट्रिंग की सूची) या किसी भी चीज़) का एट्रिब्यूट सेट
डिफ़ॉल्ट: { }
idx.extensions
कोड एक्सटेंशन, जिन्हें आपको अपने IDX वर्कस्पेस में इंस्टॉल करना है.
यह पूरी तरह क्वालिफ़ाइड एक्सटेंशन आईडी की सूची है. उदाहरण के लिए, ${publisherId}.${extensionId}
.
Open VSX Registry पर, उपलब्ध एक्सटेंशन की सूची देखी जा सकती है. साथ ही, ${publisherId}.${extensionId}
की मदद से उन्हें अपनी dev.nix
फ़ाइल में डाला जा सकता है.
टाइप: (खाली नहीं होने वाली स्ट्रिंग या पाथ) की सूची
डिफ़ॉल्ट: [ ]
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 Launch Activity
टाइप: स्ट्रिंग
डिफ़ॉल्ट: ""
idx.previews.previews.<name>.command
एक्ज़ीक्यूट करने के लिए निर्देश
टाइप: स्ट्रिंग की सूची
डिफ़ॉल्ट: [ ]
idx.previews.previews.<name>.cwd
वर्किंग डायरेक्ट्री
टाइप: स्ट्रिंग
डिफ़ॉल्ट: ""
idx.previews.previews.<name>.env
सेट किए जाने वाले एनवायरमेंट वैरिएबल.
टाइप: स्ट्रिंग का एट्रिब्यूट सेट
डिफ़ॉल्ट: { }
idx.previews.previews.<name>.manager
मैनेजर
टाइप: "वेब", "फ़्लटर", "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
Rootless 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