這個頁面提供了工作區環境的結構定義詳細資料
設定檔,設定檔應一律位於 .idx/dev.nix
。
如要瞭解 Nix 語言,請參閱 Nix 官方用語 教學課程。
packages
要安裝在環境中的套件。
您可以使用 pkgs
引數選取要安裝的套件,例如
pkgs.python3
。請注意,pkgs
的內容取決於所選內容
channel
個頻道選項。
範例:
{pkgs, ...}: {
channel = "stable-23.11";
packages = [pkgs.vim];
}
您可以在這裡搜尋可用的套裝方案: stable-23.11 或 不穩定。
類型:套件清單
預設: [ ]
頻道
使用的 nixpkgs 管道。
此管道定義 pkgs
引數的內容。
類型:可以是「stable-23.05」、「stable-23.11」、「stable-24.05」或「unstable」
預設: "stable-23.11"
env
在開發人員環境中設定的環境變數。
這些異動會套用至所有殼層和預覽伺服器。環境 如果應用程式需要特定的集合 變數。
每個變數的值可以是字串或字串清單。 後者會串聯,中間有冒號字元。
PATH
必須是清單,因為系統會一直擴充且永遠不會完全取代。
範例:
{pkgs, ...}: {
env = {
HELLO = "world";
# append an entry to PATH
PATH = ["/some/path/bin"];
};
}
類型:屬性集 ((字串清單) 或任何項目)
預設: { }
idx.extensions
您想在 IDX 工作區中安裝的程式碼擴充功能。
這是完整的擴充功能 ID 清單,例如
${publisherId}.${extensionId}
。
您可以在 Google Cloud 控制台
開啟 VSX Registry 並在 dev.nix
檔案中輸入
上傳者:${publisherId}.${extensionId}
。
「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>.activity
Android 啟動活動
類型:字串
預設: ""
idx.previews.previews.<name>.command
要執行的指令
類型:字串清單
預設: [ ]
idx.previews.previews.<name>.cwd
工作目錄
類型:字串
預設: ""
idx.previews.previews.<name>.env
要設定的環境變數。
類型:一組字串
預設: { }
idx.previews.previews.<name>.manager
管理員
類型:「網頁」、「流暢」、「android」或「gradle」
idx.workspace.onCreate
首次建立及開啟工作區時要執行的指令。
這在設定開發環境時非常實用。舉例來說
指定要執行的 npm install
:
{pkgs, ...}: {
idx.workspace.onCreate = {
npm-install = "npm install";
# files to open when the workspace is first opened.
default.openFiles = [ "src/index.ts" ];
};
}
類型:屬性組合 (路徑或字串,或 ({ openFiles = [ string ];}))
預設: { }
idx.workspace.onStart
每次開啟工作區時要執行的指令。
這有助於開始建構看守工具。比如說 要執行以下 2 個指令:
{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" ];
};
}
類型:屬性組合 (路徑或字串,或 ({ openFiles = [ string ];}))
預設: { }
services.docker.enable
是否啟用無根式 Docker。
類型:布林值
預設: false
範例:true
services.mongodb.enable
是否啟用 MongoDB 伺服器。
類型:布林值
預設: false
範例:true
services.mongodb.package
要使用的 MongoDB 套件。
類型:套件
預設: <derivation mongodb-6.0.11>
services.mongodb.port
設定 Mongod 要監聽的通訊埠。
根據預設,tcp 會停用,Mongod 也只會在 /tmp/mongodb/mongodb.sock 上監聽。 如要連線,請使用連線字串 「mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock」
類型:16 位元無正負號整數;介於 0 到 65535 (包含這兩個值) 之間
預設: 0
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.enableTcp
是否啟用 Postgres 監聽 TCP。
類型:布林值
預設: true
範例:true
services.postgres.package
要使用的 PostgreSQL 套件
類型:套件
預設: pkgs.postgresql
範例:pkgs.postgresql_15
services.postgres.extensions
要安裝的 Postgres 擴充功能。
類型:清單 (「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_similarity」、「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」)
預設: [ ]
範例:[ "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