Справочник по dev.nix

На этой странице содержится подробная информация о схеме файла конфигурации вашей рабочей среды, который всегда должен находиться по адресу .idx/dev.nix .

Чтобы узнать о языке Nix, см. официальное руководство по языку Nix .

пакеты

Пакеты для установки в среду.

Вы можете использовать аргумент pkgs для выбора пакетов для установки, например pkgs.python3 . Обратите внимание, что содержимое pkgs зависит от выбранного параметра channel .

Пример:

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

Вы можете поискать доступные пакеты здесь: стабильный-23.11 или нестабильный .

Тип: список посылки

По умолчанию: [ ]

канал

канал nixpkgs, который нужно использовать.

Этот канал определяет содержимое аргумента pkgs .

Тип: один из «стабильный-23.05», «стабильный-23.11», «стабильный-24.05», «нестабильный».

По умолчанию: "stable-23.11"

окружение

Переменные среды, которые устанавливаются внутри среды разработчика.

Они распространяются на все ваши оболочки и сервер предварительного просмотра. Переменные среды могут быть особенно полезны, если вашему приложению требуется определенный набор переменных.

Значение каждой переменной может быть строкой или списком строк. Последний объединяется, перемежаясь символами двоеточия.

PATH должен быть списком, поскольку он всегда расширяется и никогда не заменяется полностью.

Пример:

{pkgs, ...}: {
  env = {
    HELLO = "world";
    # append an entry to PATH
    PATH = ["/some/path/bin"];
  };
}

Тип: набор атрибутов ((список строк) или что-то еще)

По умолчанию: { }

idx.extensions

Расширения кода, которые вы хотите установить в своем рабочем пространстве IDX.

Это список полных идентификаторов расширений, например ${publisherId}.${extensionId} .

Вы можете найти список доступных расширений в реестре Open VSX и ввести их в свой файл dev.nix с помощью ${publisherId}.${extensionId} .

Тип: список (непустая строка или путь)

По умолчанию: [ ]

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.<имя>.активность

Активность запуска Android

Тип: строка

По умолчанию: ""

idx.previews.previews.<имя>.команда

Команда для выполнения

Тип: список строк

По умолчанию: [ ]

idx.previews.previews.<имя>.cwd

Рабочий каталог

Тип: строка

По умолчанию: ""

idx.previews.previews.<имя>.env

Переменные среды, которые необходимо установить.

Тип: набор атрибутов строки.

По умолчанию: { }

idx.previews.previews.<имя>.manager

Менеджер

Тип: один из «web», «futter», «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

Команды, выполняемые при каждом открытии рабочей области.

Это может быть полезно для начала сборки наблюдателей. Например, здесь мы указываем две команды для запуска:

{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 ];}))

По умолчанию: { }

Услуги IDX

Общие службы, которые можно включить при открытии рабочей области.

Например, чтобы включить Postgres и использовать расширение pgvector , добавьте в dev.nix следующее:

    services.postgres = {
      extensions = ["pgvector"];
      enable = true;
    };

В следующих разделах перечислены все поддерживаемые службы и их настраиваемые параметры.

Services.docker.enable

Включить ли докер без Root.

Тип: логический

По умолчанию: 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.

Сервер инициализируется пользователем root без пароля. Поэтому для создания дополнительных пользователей и баз данных используйте 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 для установки.

Тип: список (один из «возраста», «apache_datasketches», «cstore_fdw», «hypopg», «jsonb_deep_sum», «периодов», «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. Этот проект предназначен только для тестирования, он не обязательно должен существовать и используется только локально.

Тип: строка, соответствующая шаблону [az][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-инъекция

Включить ли случайное внесение ошибок в транзакции.

Тип: логический

По умолчанию: false

Пример: true

Services.spanner.grpc-порт

TCP-порт, к которому должен быть привязан эмулятор.

Тип: 16-битное целое число без знака; от 0 до 65535 (оба включительно)

По умолчанию: 9010

Services.spanner.rest-port

Порт, на котором обслуживаются запросы REST.

Тип: 16-битное целое число без знака; от 0 до 65535 (оба включительно)

По умолчанию: 9020