このページでは、常に .idx/dev.nix
にあるワークスペース環境構成ファイルのスキーマについて詳しく説明します。
Nix 言語については、Nix 公式チュートリアルをご覧ください。
荷物
環境にインストールするパッケージ。
pkgs
引数を使用して、インストールするパッケージを選択できます(例: pkgs.python3
)。pkgs
の内容は、選択した channel
チャネル オプションによって異なります。
例:
{pkgs, ...}: {
channel = "stable-23.11";
packages = [pkgs.vim];
}
利用可能なパッケージは、stable-23.11 または unstable で検索できます。
Type: パッケージのリスト
デフォルト: [ ]
チャンネル
nixpkgs チャネルを指定します。
このチャンネルは、pkgs
引数の内容を定義します。
タイプ: 「stable-23.05」、「stable-23.11」、「unstable」のいずれか
デフォルト: "stable-23.11"
env
開発環境内で設定される環境変数。
これらはすべてのシェルとプレビュー サーバーに反映されます。環境変数は、アプリケーションで特定の変数セットが必要な場合に特に便利です。
例:
{pkgs, ...}: {
env = {
HELLO = "world";
};
}
タイプ: 任意の属性セット
デフォルト: { }
idx.extensions
IDX ワークスペースにインストールするコード拡張機能。
拡張機能の完全修飾 ID のリストです(例: ${publisherId}.${extensionId}
)。
利用可能な拡張機能のリストは Open VSX Registry で探し、${publisherId}.${extensionId}
で dev.nix
ファイルに入力してください。
型: (空でない文字列またはパス)のリスト
デフォルト: [ ]
idx.previews.enable
IDX プレビューを有効にするには、これを true
に設定します。
この機能を使用すると、開発中にアプリを自動的に実行して再読み込みできます。
型: boolean
デフォルト: 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
作業ディレクトリ
型: string
デフォルト: ""
idx.previews.previews.<name>.env
設定する環境変数。
タイプ: 文字列の属性セット
デフォルト: { }
idx.previews.previews.<name>.manager
マネージャー
タイプ: 「web」または「flutter」のいずれか
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 を有効にするかどうか。
型: boolean
デフォルト: false
例: true
services.mysql.enable
MySQL サーバーを有効にするかどうか。
サーバーはパスワードのないユーザー root で初期化されています。そのため、追加のユーザーを作成してデータベースを作成するには、mysql -u root
を使用します。.
型: boolean
デフォルト: false
例: true
services.mysql.package
使用する MySQL パッケージを指定します。
タイプ: package
デフォルト: pkgs.mysql
例: pkgs.mysql80
services.postgres.enable
PostgreSQL サーバーを有効にするかどうか。
型: boolean
デフォルト: false
例: true
services.postgres.package
使用する PostgreSQL パッケージ。
タイプ: package
デフォルト: pkgs.postgresql
例: pkgs.postgresql_15
services.postgres.extensions
インストールする Postgres 拡張機能。
デフォルト: [ ]
例: [ "pgvector" "postgis" ];
services.pubsub.enable
Google Pub/Sub エミュレータを有効にするかどうか。
エミュレータの使用方法について詳しくは、https://cloud.google.com/pubsub/docs/emulator#using_the_emulator をご覧ください。
型: boolean
デフォルト: false
例: true
services.pubsub.port
Pub/Sub がリッスンするポートを構成します。
型: 0 ~ 65535(両端を含む)16 ビットの符号なし整数
デフォルト: 8085
services.pubsub.project-id
Pub/Sub エミュレータの実行に使用するプロジェクト ID。このプロジェクトはテスト専用です。存在している必要はなく、ローカルでのみ使用します。
Type: パターン [a-z][a-z0-9-]{5,29} に一致する文字列
デフォルト: "idx-pubsub-emulator"
services.redis.enable
Redis サーバーを有効にするかどうか。
型: boolean
デフォルト: false
例: true
services.redis.port
Redis がリッスンするポートを構成します。
デフォルトでは、TCP は無効になっており、redis は /tmp/redis/redis.sock でのみリッスンします。
型: 0 ~ 65535(両端を含む)16 ビットの符号なし整数
デフォルト: 0
services.spanner.enable
Google Cloud Spanner Emulator を有効にするかどうか。
型: boolean
デフォルト: false
例: true
services.spanner.fault-injection
トランザクションへのランダム フォールト インジェクションを有効にするかどうか。
型: boolean
デフォルト: false
例: true
services.spanner.grpc-port
エミュレータをバインドする TCP ポート。
型: 0 ~ 65535(両端を含む)16 ビットの符号なし整数
デフォルト: 9010
services.spanner.rest-port
REST リクエストを処理するポート
型: 0 ~ 65535(両端を含む)16 ビットの符号なし整数
デフォルト: 9020