Project IDX cho phép bạn điều chỉnh không gian làm việc cho phù hợp với nhu cầu riêng của dự án bằng cách xác định một tệp cấu hình .idx/dev.nix
mô tả:
- Công cụ hệ thống mà bạn cần để có thể chạy (ví dụ: từ Terminal), chẳng hạn như trình biên dịch hoặc các tệp nhị phân khác.
- Các tiện ích IDE bạn cần cài đặt (ví dụ: hỗ trợ ngôn ngữ lập trình).
- Cách xem trước ứng dụng của bạn xuất hiện (ví dụ: các lệnh để chạy máy chủ web).
- Biến môi trường chung có sẵn cho các máy chủ cục bộ chạy trong không gian làm việc của bạn.
Hãy xem tài liệu tham khảo dev.nix
để biết nội dung mô tả đầy đủ về các tính năng hiện có.
Nix và IDX
IDX sử dụng Nix để xác định cấu hình môi trường cho mỗi không gian làm việc. Cụ thể, IDX sử dụng:
Ngôn ngữ lập trình Nix để mô tả môi trường không gian làm việc. Nix là một ngôn ngữ lập trình hàm. Các thuộc tính và thư viện gói mà bạn có thể xác định trong tệp
dev.nix
tuân theo ngữ pháp tập hợp thuộc tính Nix.Trình quản lý gói Nix để quản lý các công cụ hệ thống có sẵn cho không gian làm việc của bạn. Điều này tương tự như các trình quản lý gói dành riêng cho hệ điều hành, chẳng hạn như APT (
apt
vàapt-get
), Homebrew (brew
) vàdpkg
.
Vì môi trường Nix có thể tái tạo và khai báo, trong bối cảnh của IDX, điều này có nghĩa là bạn có thể chia sẻ tệp cấu hình Nix trong kho lưu trữ Git để đảm bảo mọi người làm việc trên dự án của bạn đều có cùng cấu hình môi trường.
Ví dụ cơ bản
Ví dụ sau đây cho thấy cấu hình môi trường cơ bản cho phép xem trước:
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_18
];
# Sets environment variables in the workspace
env = {
SOME_ENV_VAR = "hello";
};
# Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
idx.extensions = [
"angular.ng-template"
];
# Enable previews and customize configuration
idx.previews = {
enable = true;
previews = {
web = {
command = [
"npm"
"run"
"start"
"--"
"--port"
"$PORT"
"--host"
"0.0.0.0"
"--disable-host-check"
];
manager = "web";
# Optionally, specify a directory that contains your web app
# cwd = "app/client";
};
};
};
}
Thêm công cụ hệ thống
Để thêm các công cụ hệ thống vào không gian làm việc, chẳng hạn như trình biên dịch hoặc chương trình CLI cho các dịch vụ đám mây, hãy tìm mã nhận dạng gói duy nhất trong sổ đăng ký gói Nix rồi thêm mã nhận dạng đó vào đối tượng packages
của tệp dev.nix
, có tiền tố là "pkgs".
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_18
];
...
}
Điều này khác với cách bạn thường cài đặt các gói hệ thống bằng trình quản lý gói dành riêng cho hệ điều hành, chẳng hạn như APT (apt
và apt-get
), Homebrew (brew
) và dpkg
. Việc mô tả chính xác những gói hệ thống cần thiết theo cách khai báo có nghĩa là không gian làm việc IDX dễ dàng được chia sẻ và tái tạo hơn.
Sử dụng tệp nhị phân nút cục bộ
Giống như trên máy cục bộ, bạn có thể thực thi các tệp nhị phân liên quan đến các gói nút được cài đặt cục bộ (tức là các gói được xác định trong package.json
) trong bảng điều khiển của Terminal bằng cách gọi các tệp đó bằng lệnh npx
.
Để thuận tiện hơn, nếu bạn đang ở trong một thư mục có thư mục node_modules
(chẳng hạn như thư mục gốc của một dự án web), thì bạn có thể gọi trực tiếp các tệp nhị phân được cài đặt cục bộ mà không cần tiền tố npx
.
Thêm thành phần gcloud
Tất cả không gian làm việc IDX đều có cấu hình mặc định của gcloud
CLI cho Google Cloud.
Nếu cần thêm thành phần, bạn có thể thêm các thành phần đó vào tệp dev.nix
như sau:
{ pkgs }: {
packages = [
...
(pkgs.google-cloud-sdk.withExtraComponents [
pkgs.google-cloud-sdk.components.cloud-datastore-emulator
])
...
];
}
Thêm tiện ích IDE
Bạn có thể cài đặt tiện ích trong IDX bằng cách sử dụng đăng ký tiện ích OpenVSX theo hai cách:
Bằng cách sử dụng bảng điều khiển Extensions (Tiện ích) trong IDX để khám phá và cài đặt các tiện ích. Phương pháp này phù hợp nhất với các tiện ích dành riêng cho người dùng, chẳng hạn như:
- Giao diện màu tuỳ chỉnh
Bằng cách thêm phần mở rộng vào tệp
dev.nix
. Các tiện ích này sẽ được cài đặt tự động khi bạn chia sẻ cấu hình không gian làm việc. Phương pháp này phù hợp nhất với các phần mở rộng dành riêng cho dự án, chẳng hạn như:- Tiện ích ngôn ngữ lập trình, bao gồm cả trình gỡ lỗi dành riêng cho ngôn ngữ
- Tiện ích chính thức cho các dịch vụ đám mây được sử dụng trong dự án của bạn
- Trình định dạng mã
Đối với phương pháp sau, bạn có thể đưa các tiện ích IDE vào tệp dev.nix
bằng cách tìm mã nhận dạng tiện ích đủ điều kiện (có dạng <publisher>.<id>
) và thêm mã nhận dạng đó vào đối tượng idx.extensions
như sau:
{ pkgs, ... }: {
...
# Search for the extensions you want on https://open-vsx.org/ and use the format
# "<publisher>.<id>"
idx.extensions = [
"angular.ng-template"
];
...
}
Thêm các dịch vụ phổ biến
IDX cũng cung cấp tính năng thiết lập và định cấu hình đơn giản cho các dịch vụ phổ biến mà bạn có thể cần trong quá trình phát triển, bao gồm:
- Vùng chứa
- Docker (
services.docker.*
)
- Docker (
- Ứng dụng nhắn tin
- Trình mô phỏng Pub/Sub (
services.pubsub.*
)
- Trình mô phỏng Pub/Sub (
- Cơ sở dữ liệu
- MySQL (
services.mysql.*
) - Postgres (
services.postgres.*
) - Redis (
services.redis.*
) - Spanner (
services.spanner.*
)
- MySQL (
Để biết thông tin chi tiết về cách bật các dịch vụ này trong không gian làm việc, hãy xem các phần services.*
trong tài liệu tham khảo về dev.nix
.
Tuỳ chỉnh bản xem trước
Để biết thông tin chi tiết về cách tuỳ chỉnh bản xem trước ứng dụng, hãy xem tài liệu về bản xem trước.
Đặt biểu tượng cho không gian làm việc
Bạn có thể chọn một biểu tượng tuỳ chỉnh cho không gian làm việc của mình bằng cách đặt một tệp PNG có tên icon.png
bên cạnh tệp dev.nix
, bên trong thư mục .idx
. Sau đó, IDX sẽ sử dụng biểu tượng này để thể hiện không gian làm việc của bạn trong trang tổng quan.
Vì tệp này có thể được kiểm tra vào hệ thống quản lý nguồn (chẳng hạn như Git), nên đây là một cách hay để giúp mọi người làm việc trên dự án của bạn đều thấy cùng một biểu tượng cho dự án khi sử dụng IDX. Và vì tệp có thể khác nhau giữa các nhánh Git, nên bạn thậm chí có thể phân biệt trực quan các không gian làm việc khi làm việc trên các bản phát hành "beta" và "phiên bản chính thức" của ứng dụng.
Chuyển nội dung tuỳ chỉnh thành mẫu
Để biến cấu hình môi trường của bạn thành "môi trường khởi động" cho bất kỳ ai tạo dự án mới, hãy xem tài liệu về cách tạo mẫu tuỳ chỉnh.
Xem tất cả các lựa chọn tuỳ chỉnh
Hãy xem tài liệu tham khảo dev.nix
để biết nội dung mô tả chi tiết về giản đồ cấu hình môi trường.