Tài liệu tham khảo dev.nix

Trang này cung cấp thông tin chi tiết về giản đồ cho tệp cấu hình môi trường không gian làm việc của bạn. Tệp này phải luôn nằm tại .idx/dev.nix.

Để tìm hiểu về ngôn ngữ của Nix, hãy xem hướng dẫn chính thức về ngôn ngữ của Nix.

gói hàng

Các gói cần cài đặt trong môi trường.

Bạn có thể dùng đối số pkgs để chọn các gói muốn cài đặt, ví dụ: pkgs.python3. Lưu ý rằng nội dung của pkgs phụ thuộc vào tuỳ chọn kênh channel đã chọn.

Ví dụ:

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

Bạn có thể tìm kiếm các gói có sẵn tại đây: ổn-23.11 hoặc không ổn định.

Loại: danh sách gói

Mặc định: [ ]

kênh

nixpkgs để sử dụng.

Kênh này xác định nội dung của đối số pkgs.

Loại: một trong các loại "ổn định-23.05", "ổn định-23.11", "không ổn định"

Mặc định: "stable-23.11"

env

Biến môi trường được đặt bên trong môi trường dành cho nhà phát triển.

Các thay đổi này sẽ được phổ biến đến tất cả các shell và máy chủ xem trước. Biến môi trường có thể đặc biệt hữu ích nếu ứng dụng của bạn yêu cầu một tập hợp các biến cụ thể.

Ví dụ:

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

Loại: tập hợp thuộc tính của bất kỳ nội dung nào

Mặc định: { }

idx.extensions

Tiện ích mã bạn muốn cài đặt trong không gian làm việc IDX của mình.

Đây là danh sách các mã tiện ích đủ điều kiện, ví dụ: ${publisherId}.${extensionId}.

Bạn có thể tìm thấy danh sách các tiện ích có sẵn trên Open VSX Registry (Mở sổ đăng ký VSX) rồi nhập các tiện ích đó vào tệp dev.nix chậm nhất vào ngày ${publisherId}.${extensionId}.

Loại: danh sách (chuỗi hoặc đường dẫn không trống)

Mặc định: [ ]

idx.previews.enable

Đặt giá trị này thành true để bật tính năng Bản xem trước IDX.

Tính năng này cung cấp cách tự động chạy và tải lại ứng dụng trong quá trình bạn phát triển ứng dụng.

Loại: boolean

Mặc định: true

Ví dụ: true

idx.previews.previews

Xem trước cấu hình.

Xác định các lệnh mà IDX thực thi trong môi trường nhà phát triển của bạn.

Ví dụ:

{pkgs, ...}: {
  idx.previews = {
    enable = true;
    previews = {
      web = {
        command = ["yes"];
        cwd = "subfolder";
        manager = "web";
        env = {
          HELLO = "world";
        };
      };
    };
  };
}

Loại: tập hợp thuộc tính của (mô-đun con)

Mặc định: { }

idx.previews.previews.<name>.command

Lệnh để thực thi

Loại: danh sách chuỗi

Mặc định: [ ]

idx.previews.previews.<name>.cwd

Thư mục làm việc

Loại: chuỗi

Mặc định: ""

idx.previews.previews.<name>.env

Các biến môi trường cần đặt.

Loại: tập hợp thuộc tính của chuỗi

Mặc định: { }

idx.previews.previews.<name>.manager

Nhà quản lý

Loại: một trong các loại "web", "flutter"

idx.workspace.onCreate

Các lệnh sẽ thực thi khi không gian làm việc được tạo và mở lần đầu tiên.

Thao tác này có thể hữu ích khi thiết lập môi trường phát triển. Ví dụ: ở đây chúng tôi đang chỉ định npm install để chạy:

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

Loại: tập hợp thuộc tính của (đường dẫn hoặc chuỗi)

Mặc định: { }

idx.workspace.onStart

Các lệnh sẽ thực thi bất cứ khi nào không gian làm việc được mở.

Điều này có thể hữu ích để bắt đầu xây dựng người theo dõi. Ví dụ: ở đây chúng ta sẽ chỉ định 2 lệnh để chạy:

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

Loại: tập hợp thuộc tính của (đường dẫn hoặc chuỗi)

Mặc định: { }

services.docker.enable

Liệu có bật Rootless docker hay không.

Loại: boolean

Mặc định: false

Ví dụ: true

services.mysql.enable

Liệu có bật máy chủ MySQL hay không.

Máy chủ này được khởi động bằng một thư mục gốc không cần mật khẩu của người dùng. Vì vậy, để tạo thêm người dùng và tạo cơ sở dữ liệu, hãy sử dụng mysql -u root. .

Loại: boolean

Mặc định: false

Ví dụ: true

services.mysql.package

Gói MySQL cần sử dụng.

Loại: gói

Mặc định: pkgs.mysql

Ví dụ: pkgs.mysql80

services.postgres.enable

Liệu có bật máy chủ PostgreSQL hay không.

Loại: boolean

Mặc định: false

Ví dụ: true

services.postgres.package

Gói PostgreSQL cần sử dụng.

Loại: gói

Mặc định: pkgs.postgresql

Ví dụ: pkgs.postgresql_15

services.postgres.extensions

Tiện ích Postgres cần cài đặt.

Type: danh sách (một trong số "age", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "periods", "pg_auto_failover", "pg_bigm", "pg_cron", "pg_ed25519", "pg_

Mặc định: [ ]

Ví dụ: [ "pgvector" "postgis" ];

services.pubsub.enable

Liệu có bật trình mô phỏng Google Pub/Sub hay không.

Bạn có thể xem thêm tài liệu về cách sử dụng trình mô phỏng tại đây: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator .

Loại: boolean

Mặc định: false

Ví dụ: true

services.pubsub.port

Định cấu hình cổng mà Pub/Sub sẽ nghe.

Loại: Số nguyên 16 bit chưa ký; từ 0 đến 65535 (tính cả hai giá trị)

Mặc định: 8085

services.pubsub.project-id

Mã dự án cần dùng để chạy trình mô phỏng Pub/Sub. Dự án này chỉ dành cho mục đích kiểm thử, không nhất thiết phải tồn tại và chỉ được dùng cục bộ.

Loại: chuỗi khớp với mẫu [a-z][a-z0-9-]{5,29}

Mặc định: "idx-pubsub-emulator"

services.redis.enable

Liệu có bật máy chủ Redis hay không.

Loại: boolean

Mặc định: false

Ví dụ: true

services.redis.port

Định cấu hình cổng mà Redis sẽ nghe.

Theo mặc định, tcp bị tắt và redis chỉ nghe trên /tmp/redis/redis.sock.

Loại: Số nguyên 16 bit chưa ký; từ 0 đến 65535 (tính cả hai giá trị)

Mặc định: 0

services.spanner.enable

Liệu có bật Trình mô phỏng Google Cloud Spanner hay không.

Loại: boolean

Mặc định: false

Ví dụ: true

services.spanner.fault-injection

Liệu có bật tính năng chèn lỗi ngẫu nhiên vào giao dịch hay không.

Loại: boolean

Mặc định: false

Ví dụ: true

services.spanner.grpc-port

Cổng TCP mà trình mô phỏng phải liên kết.

Loại: Số nguyên 16 bit chưa ký; từ 0 đến 65535 (tính cả hai giá trị)

Mặc định: 9010

services.spanner.rest-port

Cổng mà tại đó các yêu cầu REST được phân phát

Loại: Số nguyên 16 bit chưa ký; từ 0 đến 65535 (tính cả hai giá trị)

Mặc định: 9020