dev.nix 參考資料

本頁列出工作區環境設定檔的結構定義詳細資料,這類資訊應一律位於 .idx/dev.nix

如要進一步瞭解 Nix 語言,請參閱 Nix 官方語言教學課程

包裹

要安裝在環境中的套件。

您可以使用 pkgs 引數選取要安裝的套件,例如 pkgs.python3。請注意,pkgs 的內容取決於所選的 channel 管道選項。

示例:

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

您可以在這裡搜尋可用的套件:stable-23.11不穩定

類型:套件清單

預設: [ ]

頻道

使用的 nixpkgs 管道。

此管道定義 pkgs 引數的內容。

類型:可以是「stable-23.05」、「stable-23.11」或「unstable」

預設: "stable-23.11"

env

在開發人員環境中設定的環境變數。

這些異動會套用至所有殼層和預覽伺服器。如果您的應用程式需要一組特定的變數,環境變數就特別實用。

示例:

{pkgs, ...}: {
  env = {
    HELLO = "world";
  };
}

類型:無任何項目的屬性集

預設: { }

idx.extensions

您想在 IDX 工作區中安裝的程式碼擴充功能。

這是完整的擴充功能 ID 清單,例如 ${publisherId}.${extensionId}

您可以前往開啟 VSX Registry 查看可用的擴充功能清單,並在 ${publisherId}.${extensionId}dev.nix 檔案中輸入這些擴充功能。

「Type」:清單 (非空白字串或路徑)

預設: [ ]

idx.previews.enable

設為 true 即可啟用 IDX 預覽功能。

這項功能可讓您在開發應用程式時,自動執行並重新載入應用程式。

類型:布林值

預設: true

範例:true

idx.previews.previews

預覽設定。

定義 IDX 在開發人員環境中執行的指令。

示例:

{pkgs, ...}: {
  idx.previews = {
    enable = true;
    previews = {
      web = {
        command = ["yes"];
        cwd = "subfolder";
        manager = "web";
        env = {
          HELLO = "world";
        };
      };
    };
  };
}

類型:屬性組合 (子模組)

預設: { }

idx.previews.previews.<name>.command

要執行的指令

類型:字串清單

預設: [ ]

idx.previews.previews.<name>.cwd

工作目錄

類型:字串

預設: ""

idx.previews.previews.<name>.env

要設定的環境變數。

類型:一組字串

預設: { }

idx.previews.previews.<name>.manager

經理

類型:輸入「網頁」、「流暢」

idx.workspace.onCreate

首次建立及開啟工作區時要執行的指令。

這在設定開發環境時非常實用。例如,這裡指定要執行的 npm install

{pkgs, ...}: {
  idx.workspace.onCreate = {
    npm-install = "npm install";
  };
}

類型:屬性集 (路徑或字串)

預設: { }

idx.workspace.onStart

每次開啟工作區時要執行的指令。

這有助於開始建構看守工具。例如,這裡指定要執行的 2 個指令:

{pkgs, ...}: {
  idx.workspace.onStart = {
    npm-watch-fe = "npm run watch:frontend";
    npm-watch-be = "npm run watch:backend";
  };
}

類型:屬性集 (路徑或字串)

預設: { }

services.docker.enable

是否啟用無根式 Docker。

類型:布林值

預設: false

範例:true

services.mysql.enable

是否啟用 MySQL 伺服器。

伺服器是以無密碼的使用者根層級初始化。因此,如要建立其他使用者及建立資料庫,請使用 mysql -u root

類型:布林值

預設: false

範例:true

services.mysql.package

要使用的 MySQL 套件。

類型:套件

預設: pkgs.mysql

範例:pkgs.mysql80

services.postgres.enable

是否啟用 PostgreSQL 伺服器。

類型:布林值

預設: false

範例:true

services.postgres.package

要使用的 PostgreSQL 套件

類型:套件

預設: pkgs.postgresql

範例:pkgs.postgresql_15

services.postgres.extensions

要安裝的 Postgres 擴充功能。

Type::"age:

預設: [ ]

範例:[ "pgvector" "postgis" ];

services.pubsub.enable

是否啟用 Google Pub/Sub 模擬器。

如需更多使用模擬器的說明文件,請前往:https://cloud.google.com/pubsub/docs/emulator#using_the_emulator。

類型:布林值

預設: false

範例:true

services.pubsub.port

設定 Pub/Sub 要監聽的通訊埠。

類型:16 位元無正負號整數,介於 0 和 65535 之間 (含首尾)

預設: 8085

services.pubsub.project-id

用來執行 Pub/Sub 模擬器的專案 ID。這項專案僅供測試,不一定要存在,且僅會在本機使用。

類型:與模式 [a-z][a-z0-9-]{5,29} 相符的字串

預設: "idx-pubsub-emulator"

services.redis.enable

是否啟用 Redis 伺服器。

類型:布林值

預設: false

範例:true

services.redis.port

設定 Redis 要監聽的通訊埠。

根據預設,tcp 會停用,redis 只會監聽 /tmp/redis/redis.sock。

類型:16 位元無正負號整數,介於 0 和 65535 之間 (含首尾)

預設: 0

services.spanner.enable

是否啟用 Google Cloud Spanner 模擬器。

類型:布林值

預設: false

範例:true

services.spanner.fault-injection

是否啟用交易的隨機錯誤插入功能。

類型:布林值

預設: false

範例:true

services.spanner.grpc-port

模擬器應繫結的 TCP 通訊埠。

類型:16 位元無正負號整數,介於 0 和 65535 之間 (含首尾)

預設: 9010

services.spanner.rest-port

提供 REST 要求的通訊埠

類型:16 位元無正負號整數,介於 0 和 65535 之間 (含首尾)

預設: 9020