На этой странице содержится подробная информация о схеме файла конфигурации вашей рабочей среды, который всегда должен находиться по адресу .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