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