หน้านี้แสดงรายละเอียดเกี่ยวกับสคีมาของไฟล์การกําหนดค่าสภาพแวดล้อมของ 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", "stable-24.05", "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}
คุณดูรายการส่วนขยายที่ใช้ได้ในรีจิสทรี VSX แบบเปิด แล้วป้อนลงในไฟล์ 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
ตัวแปรสภาพแวดล้อมที่จะตั้งค่า
ประเภท: ชุดแอตทริบิวต์สตริง
ค่าเริ่มต้น: { }
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
คำสั่งที่จะดำเนินการทุกครั้งที่เปิดเวิร์กスペース
ซึ่งมีประโยชน์ในการเริ่มเครื่องมือตรวจสอบบิลด์ ตัวอย่างเช่น ในที่นี้เราจะระบุ 2 คำสั่งให้เรียกใช้
{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 ];}))
ค่าเริ่มต้น: { }
บริการ IDX
บริการทั่วไปที่จะเปิดใช้เมื่อเปิดเวิร์กスペース
เช่น หากต้องการเปิดใช้ 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 จะรอรับการเชื่อมต่อ
โดยค่าเริ่มต้น ระบบจะปิดใช้ TCP และ Mongod จะฟังเฉพาะที่ /tmp/mongodb/mongodb.sock หากต้องการเชื่อมต่อ ให้ใช้สตริงการเชื่อมต่อ "mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock"
ประเภท: จำนวนเต็มแบบไม่ลงนาม 16 บิต ระหว่าง 0 ถึง 65535 (รวมทั้ง 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 เพื่อฟังใน TCP
ประเภท: บูลีน
ค่าเริ่มต้น: 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 จะรอรับการเชื่อมต่อ
โดยค่าเริ่มต้น ระบบจะปิดใช้ 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