dev.nix リファレンス

このページでは、ワークスペース環境のスキーマについて詳しく説明します。 構成ファイル(常に .idx/dev.nix に配置する必要があります)

Nix 言語については、公式 Nix 言語 チュートリアルをご覧ください。

荷物

環境にインストールするパッケージ。

インストールするパッケージを選択するには、pkgs 引数を使用します。次に例を示します。 pkgs.python3pkgs の内容は、選択した channel チャンネル オプション。

例:

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

ここで利用可能なパッケージを検索できます。 stable-23.11 または 不安定です。

Type: パッケージのリスト

デフォルト: [ ]

チャンネル

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}

利用可能な拡張機能のリストについては、 VSX Registry を開きdev.nix ファイルに入力します。 作成者: ${publisherId}.${extensionId}

型: (空でない文字列またはパス)のリスト

デフォルト: [ ]

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>.activity

Android 起動アクティビティ

型: string

デフォルト: ""

idx.previews.previews.<name>.command

実行するコマンド

型: 文字列のリスト

デフォルト: [ ]

idx.previews.previews.<name>.cwd

作業ディレクトリ

型: string

デフォルト: ""

idx.previews.previews.<name>.env

設定する環境変数。

タイプ: 文字列の属性セット

デフォルト: { }

idx.previews.previews.<name>.manager

マネージャー

タイプ: 「web」、「flutter」、「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 を有効にするかどうか。

型: boolean

デフォルト: false

例: true

services.mongodb.enable

MongoDB サーバーを有効にするかどうか。

型: boolean

デフォルト: false

例: true

services.mongodb.package

使用する MongoDB パッケージを指定します。

タイプ: package

デフォルト: <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 サーバーを有効にするかどうか。

サーバーはパスワードのないユーザー 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.enableTcp

Postgres が TCP でリッスンできるようにするかどうかを指定します。

型: boolean

デフォルト: true

例: true

services.postgres.package

使用する PostgreSQL パッケージ。

タイプ: package

デフォルト: pkgs.postgresql

例: pkgs.postgresql_15

services.postgres.extensions

インストールする Postgres 拡張機能。

Type: 「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

型: boolean

デフォルト: false

例: true

services.pubsub.port

Pub/Sub がリッスンするポートを構成します。

型: 16 ビット符号なし整数0 ~ 65535(両端を含む)

デフォルト: 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 でのみリッスンします。

型: 16 ビット符号なし整数0 ~ 65535(両端を含む)

デフォルト: 0

services.spanner.enable

Google Cloud Spanner Emulator を有効にするかどうか。

型: boolean

デフォルト: false

例: true

services.spanner.fault-injection

トランザクションへのランダムなフォールト インジェクションを有効にするかどうか。

型: boolean

デフォルト: false

例: true

services.spanner.grpc-port

エミュレータをバインドする TCP ポート。

型: 16 ビット符号なし整数0 ~ 65535(両端を含む)

デフォルト: 9010

services.spanner.rest-port

REST リクエストを処理するポート

型: 16 ビット符号なし整数0 ~ 65535(両端を含む)

デフォルト: 9020