ข้อมูลอ้างอิง dev.nix

หน้านี้มีรายละเอียดเกี่ยวกับสคีมาสำหรับไฟล์การกำหนดค่าสภาพแวดล้อมพื้นที่ทำงาน ซึ่งควรอยู่ที่ .idx/dev.nix เสมอ

หากต้องการเรียนรู้เกี่ยวกับภาษา Nix โปรดดูบทแนะนำภาษา Nix อย่างเป็นทางการ

พัสดุ

แพ็กเกจที่จะติดตั้งในสภาพแวดล้อม

คุณใช้อาร์กิวเมนต์ pkgs เพื่อเลือกแพ็กเกจที่จะติดตั้งได้ เช่น pkgs.python3 โปรดทราบว่าเนื้อหาของ pkgs ขึ้นอยู่กับตัวเลือกช่อง channel ที่เลือก

เช่น

{pkgs, ...}: {
  channel = "stable-23.11";
  packages = [pkgs.vim];
}

คุณสามารถค้นหาแพ็กเกจที่มีอยู่ได้ที่นี่ stable-23.11 หรือ ไม่เสถียร

ประเภท: รายการแพ็กเกจ

ค่าเริ่มต้น: [ ]

ช่อง

nixpkgs

แชแนลนี้กำหนดเนื้อหาของอาร์กิวเมนต์ pkgs

ประเภท: ค่าใดค่าหนึ่งต่อไปนี้ ได้แก่ "stable-23.05", "stable-23.11", "unstable"

ค่าเริ่มต้น: "stable-23.11"

env

ตัวแปรสภาพแวดล้อมที่ตั้งค่าภายในสภาพแวดล้อมสำหรับนักพัฒนาซอฟต์แวร์

รายการเหล่านี้จะเผยแพร่ไปยัง Shell ทั้งหมดและเซิร์ฟเวอร์แสดงตัวอย่าง ตัวแปรสภาพแวดล้อมอาจมีประโยชน์อย่างยิ่งหากแอปพลิเคชันต้องใช้ชุดตัวแปรที่เฉพาะเจาะจง

เช่น

{pkgs, ...}: {
  env = {
    HELLO = "world";
  };
}

ประเภท: ชุดแอตทริบิวต์ของอะไรก็ได้

ค่าเริ่มต้น: { }

idx.extensions

ส่วนขยายโค้ดที่ต้องการติดตั้งในพื้นที่ทำงาน IDX

นี่คือรายการรหัสส่วนขยายที่สมบูรณ์ในตัวเอง เช่น ${publisherId}.${extensionId}

ดูรายการส่วนขยายที่พร้อมใช้งานได้ใน Open VSX Registry แล้วป้อนนามสกุลดังกล่าวลงในไฟล์ dev.nix ภายในวันที่ ${publisherId}.${extensionId}

ประเภท: รายการ (สตริงหรือเส้นทางที่ไม่ว่างเปล่า)

ค่าเริ่มต้น: [ ]

idx.previews.enable

ตั้งค่าเป็น true เพื่อเปิดใช้ IDX Previews

ฟีเจอร์นี้ช่วยให้คุณเรียกใช้และโหลดแอปซ้ำโดยอัตโนมัติขณะกำลังพัฒนาแอปได้

ประเภท: บูลีน

ค่าเริ่มต้น: 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

ตัวแปรสภาพแวดล้อมที่จะตั้งค่า

ประเภท: ชุดแอตทริบิวต์ของสตริง

ค่าเริ่มต้น: { }

idx.previews.previews.<name>.manager

ผู้จัดการ

ประเภท: หนึ่งใน "เว็บ", "flutter"

idx.workspace.onCreate

คำสั่งที่จะดำเนินการเมื่อสร้างและเปิดพื้นที่ทำงานเป็นครั้งแรก

ซึ่งอาจเป็นประโยชน์ในการตั้งค่าสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ ตัวอย่างเช่น เราระบุ npm install ที่จะเรียกใช้ ดังนี้

{pkgs, ...}: {
  idx.workspace.onCreate = {
    npm-install = "npm install";
  };
}

ประเภท: ชุดแอตทริบิวต์ของ (เส้นทางหรือสตริง)

ค่าเริ่มต้น: { }

idx.workspace.onStart

คำสั่งที่จะดำเนินการเมื่อมีการเปิดพื้นที่ทำงาน

วิธีนี้มีประโยชน์ในการเริ่มผู้ดูสร้าง เช่น ในที่นี้เราจะระบุ คำสั่ง 2 คำสั่งให้เรียกใช้

{pkgs, ...}: {
  idx.workspace.onStart = {
    npm-watch-fe = "npm run watch:frontend";
    npm-watch-be = "npm run watch:backend";
  };
}

ประเภท: ชุดแอตทริบิวต์ของ (เส้นทางหรือสตริง)

ค่าเริ่มต้น: { }

services.docker.enable

เลือกว่าจะเปิดใช้ Docker แบบ Rootless หรือไม่

ประเภท: บูลีน

ค่าเริ่มต้น: false

เช่น true

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.package

แพ็กเกจ PostgreSQL ที่จะใช้

ประเภท: แพ็กเกจ

ค่าเริ่มต้น: 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 (รวมทั้ง 2 อย่าง)

ค่าเริ่มต้น: 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 (รวมทั้ง 2 อย่าง)

ค่าเริ่มต้น: 0

services.spanner.enable

เปิดใช้โปรแกรมจำลอง Google Cloud Spanner หรือไม่

ประเภท: บูลีน

ค่าเริ่มต้น: false

เช่น true

services.spanner.fault-injection

เลือกว่าจะเปิดใช้การแทรกข้อผิดพลาดแบบสุ่มลงในการแปลงหรือไม่

ประเภท: บูลีน

ค่าเริ่มต้น: false

เช่น true

services.spanner.grpc-port

พอร์ต TCP ที่โปรแกรมจำลองควรเชื่อมโยงอยู่

ประเภท: จำนวนเต็ม 16 บิตที่ไม่มีเครื่องหมาย ตั้งแต่ 0 ถึง 65535 (รวมทั้ง 2 อย่าง)

ค่าเริ่มต้น: 9010

services.spanner.rest-port

พอร์ตที่แสดงคำขอ REST

ประเภท: จำนวนเต็ม 16 บิตที่ไม่มีเครื่องหมาย ตั้งแต่ 0 ถึง 65535 (รวมทั้ง 2 อย่าง)

ค่าเริ่มต้น: 9020