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