Tuỳ chỉnh không gian làm việc của IDX

Project IDX giúp bạn điều chỉnh không gian làm việc của mình cho phù hợp với nhu cầu riêng biệt 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ác công cụ hệ thống mà bạn cần để chạy được (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.
  • Tiện ích IDE mà bạn cần cài đặt (ví dụ: ngôn ngữ lập trình ).
  • Cách bản xem trước ứng dụng của bạn sẽ hiển thị (cho ví dụ: các lệnh để chạy máy chủ web của bạn).
  • Các biến môi trường toàn cầu áp dụng cho các máy chủ cục bộ chạy trong Workspace.

Hãy xem tài liệu tham khảo về dev.nix để biết đầy đủ nội dung mô tả về những gì 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 bạn có thể xác định trong tệp dev.nix tuân theo 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 phù hợp với không gian làm việc của bạn. Điều này tương tự như chế độ dành riêng cho hệ điều hành trình quản lý gói như APT (aptapt-get), Homebrew (brew) và dpkg.

Vì môi trường Nix có khả năng tái tạo và mang tính khai báo, trong bối cảnh IDX, điều này có nghĩa là bạn có thể chia sẻ tệp cấu hình Nix như một phần của Kho lưu trữ Git để đảm bảo mọi người làm việc trong dự án của bạn đều có cấu hình môi trường.

Một ví dụ cơ bản

Ví dụ sau đây minh hoạ 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";
      };
    };
  };
}

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 của bạn, chẳng hạn như trình biên dịch hoặc chương trình CLI cho dịch vụ đám mây, hãy tìm mã nhận dạng gói duy nhất trong gói Nix sổ đăng ký và thêm vào tệp dev.nix của bạn Đối tượng packages, 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
  ];
  ...
}

Thao tác này khác với cách bạn thường có thể cài đặt các gói hệ thống bằng Trình quản lý gói theo hệ điều hành cụ thể như APT (aptapt-get), Homebrew (brew) và dpkg. Khai báo mô tả chính xác các gói hệ thống thì không gian làm việc IDX sẽ 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ộ, các tệp nhị phân liên quan đến nút được cài đặt cục bộ các gói (tức là các gói được xác định trong package.json) có thể được thực thi trong một bảng điều khiển cửa sổ dòng lệnh bằng cách gọi chúng bằng npx .

Để thuận tiện hơn, nếu bạn đang ở trong một thư mục có node_modules thư mục (chẳng hạn như thư mục gốc của một dự án web), các tệp nhị phân được cài đặt cục bộ có thể được gọi trực tiếp mà không cần tiền tố npx.

Thêm thành phần gcloud

Cấu hình mặc định của gcloud CLI cho Google Cloud được cung cấp cho tất cả IDX không gian làm việc.

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ư nên:

{ 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:

  • Sử dụng bảng điều khiển Tiện ích trong IDX để khám phá và cài đặt tiện ích. Đây là phương pháp phù hợp nhất cho tiện ích dành riêng cho người dùng, chẳng hạn như:

    • Chủ đề màu sắc tuỳ chỉnh
  • Bằng cách thêm đuôi vào tệp dev.nix. Các tiện ích này sẽ tự động được cài đặt khi bạn chia sẻ cấu hình không gian làm việc của mình. Chiến dịch này là phương pháp phù hợp nhất cho 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ữ
    • Các 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 thứ hai, bạn có thể đưa các tiện ích IDE vào tệp dev.nix bằng cách tìm mã tiện ích đủ điều kiện (có dạng <publisher>.<id>) rồi thêm mã đó vào idx.extensions một đối tượng 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 quy trình 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.*)
  • Nhắn tin
    • Trình mô phỏng Pub/Sub (services.pubsub.*)
  • Cơ sở dữ liệu
    • MySQL (services.mysql.*)
    • Postgres (services.postgres.*)
    • Redis (services.redis.*)
    • Cờ lê (services.spanner.*)

Để 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 của bạn, hãy xem services.* các phần của tham chiếu 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 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. IDX sau đó sẽ sử dụng biểu tượng này để đại diện cho không gian làm việc của bạn trong trang tổng quan.

Vì có thể kiểm tra tệp này trong phần kiểm soát nguồn (chẳng hạn như Git), nên đây là là một cách hữu hiệu để giúp những người đang làm việc với dự án của bạn thấy biểu tượng giống nhau dự án khi sử dụng IDX. Vì tệp này có thể khác nhau giữa các nhánh Git, bạn thậm chí có thể phân biệt các không gian làm việc một cách trực quan khi làm việc trên phiên bản "beta" và "chính thức" bản phát hành ứng dụng của bạn.

Chuyển các chế độ tuỳ chỉnh thành một mẫu

Để chuyển cấu hình môi trường của bạn thành "môi trường khởi động" cho mọi người để tạo dự án mới, hãy xem tài liệu về cách tạo dự án tuỳ chỉnh mẫu.

Xem tất cả các lựa chọn tuỳ chỉnh

Hãy xem tài liệu tham khảo về dev.nix để biết thông tin chi tiết mô tả về giản đồ cấu hình môi trường.