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 môi trường không gian làm việc của bạn Tệp cấu hình 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 ngôn ngữ chính thức của Nix hướng dẫn.

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, chẳng hạn như pkgs.python3. Lưu ý rằng nội dung của pkgs phụ thuộc vào Tuỳ chọn kênh channel.

Ví dụ:

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

Bạn có thể tìm các gói có sẵn tại đây: chính thức-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 "ổn định-23.05", "ổn định-23.11", "ổn định-24.05", "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. 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 biến số.

Giá trị của mỗi biến có thể là một chuỗi hoặc một danh sách các chuỗi. Chiến lược phát hành đĩa đơn số thứ hai được nối với nhau, nằm xen kẽ với các ký tự dấu hai chấm.

PATH phải là một danh sách, vì thuộc tính này luôn được mở rộng và không bao giờ được thay thế hoàn toàn.

Ví dụ:

{pkgs, ...}: {
  env = {
    HELLO = "world";
    # append an entry to PATH
    PATH = ["/some/path/bin"];
  };
}

Loại: tập hợp thuộc tính gồm ((danh sách chuỗi) hoặc 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 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 mở rộng có sẵn trên Mở VSX Registry rồi nhập các thông tin này vào tệp dev.nix của ${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 để chạy và tự động tải lại ứng dụng của bạn khi bạn đang hoạt động phát triển chú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>.activity

Hoạt động khởi chạy Android

Loại: chuỗi

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

Người quản lý

Loại: một trong các giá trị "web", "flutter", "android", "gradle"

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";
    # files to open when the workspace is first opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

Loại: một nhóm thuộc tính gồm (đường dẫn hoặc chuỗi hoặc ({ openFiles = [ 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 tôi 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";
    # files to open when the workspace is (re)opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

Loại: một nhóm thuộc tính gồm (đường dẫn hoặc chuỗi hoặc ({ openFiles = [ 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.mongodb.enable

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

Loại: boolean

Mặc định: false

Ví dụ: true

services.mongodb.package

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

Loại: gói

Mặc định: <derivation mongodb-6.0.11>

services.mongodb.port

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

Theo mặc định, tcp bị tắt và Mongod chỉ nghe trên /tmp/mongodb/mongodb.sock. Để kết nối, hãy sử dụng chuỗi kết nối "mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock"

Loại: Số nguyên 16 bit chưa ký; từ 0 đến 65535 (bao gồm cả hai)

Mặc định: 0

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

Liệu có cho phép Postgres nghe trên TCP hay không.

Loại: boolean

Mặc định: true

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.

Loại: danh sách của (một trong các loại "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_tương tự", "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")

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 (bao gồm cả hai)

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 thử nghiệm, mã đó không phải tồn tại và chỉ được sử 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 (bao gồm cả hai)

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 (bao gồm cả hai)

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 (bao gồm cả hai)

Mặc định: 9020