Справочник по 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», «нестабильный».

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

окружение

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

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

Пример:

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

Тип: набор атрибутов чего угодно

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

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.<имя>.команда

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

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

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

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

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

Тип: строка

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

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

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

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

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

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

Менеджер

Тип: один из «паутины», «трепетания».

idx.workspace.onCreate

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

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

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

Тип: набор атрибутов (путь или строка).

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

idx.workspace.onStart

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

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

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

Тип: набор атрибутов (путь или строка).

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

Services.docker.enable

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

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

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

Пример: true

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