Project IDX позволяет адаптировать рабочее пространство к уникальным потребностям вашего проекта, определив один файл конфигурации .idx/dev.nix
, который описывает:
- Системные инструменты , которые вам необходимо запускать (например, из Терминала), такие как компиляторы или другие двоичные файлы.
- Необходимые расширения IDE (например, поддержка языков программирования).
- Как должны отображаться предварительные просмотры вашего приложения (например, команды для запуска вашего веб-сервера).
- Глобальные переменные среды, доступные локальным серверам, работающим в вашей рабочей области.
См. ссылку на dev.nix
для получения полного описания того, что доступно.
Никс и IDX
IDX использует Nix для определения конфигурации среды для каждого рабочего пространства. В частности, IDX использует:
Язык программирования Nix для описания сред рабочей области. Nix — функциональный язык программирования. Атрибуты и библиотеки пакетов, которые вы можете определить в файле
dev.nix
соответствуют синтаксису набора атрибутов Nix .Менеджер пакетов Nix для управления системными инструментами, доступными в вашем рабочем пространстве. Это похоже на менеджеры пакетов для конкретной ОС, такие как APT (
apt
иapt-get
), Homebrew (brew
) иdpkg
.
Поскольку среды Nix являются воспроизводимыми и декларативными, в контексте IDX это означает, что вы можете поделиться своим файлом конфигурации Nix как частью своего репозитория Git, чтобы гарантировать, что все, кто работает над вашим проектом, имеют одинаковую конфигурацию среды.
Базовый пример
В следующем примере показана базовая конфигурация среды, включающая предварительный просмотр:
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_18
];
# Sets environment variables in the workspace
env = {
SOME_ENV_VAR = "hello";
};
# Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
idx.extensions = [
"angular.ng-template"
];
# Enable previews and customize configuration
idx.previews = {
enable = true;
previews = {
web = {
command = [
"npm"
"run"
"start"
"--"
"--port"
"$PORT"
"--host"
"0.0.0.0"
"--disable-host-check"
];
manager = "web";
# Optionally, specify a directory that contains your web app
# cwd = "app/client";
};
};
};
}
Добавьте системные инструменты
Чтобы добавить в свое рабочее пространство системные инструменты, такие как компиляторы или программы CLI для облачных сервисов, найдите уникальный идентификатор пакета в реестре пакетов Nix и добавьте его в объект packages
вашего файла dev.nix
с префиксом `pkgs.:
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [
pkgs.nodejs_18
];
...
}
Это отличается от того, как вы обычно устанавливаете системные пакеты с помощью менеджеров пакетов для конкретной ОС, таких как APT ( apt
и apt-get
), Homebrew ( brew
) и dpkg
. Декларативное описание того, какие именно системные пакеты необходимы, означает, что рабочие пространства IDX легче совместно использовать и воспроизводить.
Используйте двоичные файлы локального узла
Как и на вашем локальном компьютере, двоичные файлы, связанные с локально установленными пакетами узлов (т. е. пакетами, определенными в вашем package.json
), могут быть выполнены на панели терминала, вызвав их с помощью команды npx
.
В качестве дополнительного удобства, если вы находитесь в каталоге с папкой node_modules
(например, в корневом каталоге веб-проекта), локально установленные двоичные файлы можно вызывать напрямую, без префикса npx
.
Добавьте компоненты gcloud
Конфигурация интерфейса командной строки gcloud
для Google Cloud по умолчанию доступна для всех рабочих пространств IDX.
Если вам нужны дополнительные компоненты, вы можете добавить их в файл dev.nix
следующим образом:
{ pkgs }: {
packages = [
...
(pkgs.google-cloud-sdk.withExtraComponents [
pkgs.google-cloud-sdk.components.cloud-datastore-emulator
])
...
];
}
Добавьте расширения IDE
Вы можете установить расширения в IDX, используя реестр расширений OpenVSX, двумя способами:
Используя панель «Расширения» в IDX для обнаружения и установки расширений. Этот подход лучше всего подходит для пользовательских расширений , таких как:
- Пользовательские цветовые темы
Добавляя расширения в ваш файл
dev.nix
. Эти расширения будут автоматически установлены, когда вы поделитесь конфигурацией своего рабочего пространства. Этот подход лучше всего подходит для расширений, специфичных для проекта , таких как:- Расширения языка программирования, включая отладчики для конкретного языка.
- Официальные расширения для облачных сервисов, используемых в вашем проекте
- Форматеры кода
В последнем подходе вы можете включить расширения IDE в файл dev.nix
, найдя полный идентификатор расширения (в форме <publisher>.<id>
) и добавив его в объект idx.extensions
следующим образом:
{ pkgs, ... }: {
...
# Search for the extensions you want on https://open-vsx.org/ and use the format
# "<publisher>.<id>"
idx.extensions = [
"angular.ng-template"
];
...
}
Добавить общие услуги
IDX также предлагает упрощенную установку и настройку общих сервисов, которые могут вам понадобиться во время разработки, в том числе:
- Контейнеры
- Докер (
services.docker.*
)
- Докер (
- Обмен сообщениями
- Эмулятор Pub/Sub (
services.pubsub.*
)
- Эмулятор Pub/Sub (
- Базы данных
- MySQL (
services.mysql.*
) - Постгрес (
services.postgres.*
) - Redis (
services.redis.*
) - Гаечный ключ (
services.spanner.*
)
- MySQL (
Подробную информацию о включении этих служб в ваше рабочее пространство см. в разделах services.*
справочника по dev.nix
.
Настройте предварительный просмотр
Подробную информацию о том, как настроить предварительный просмотр приложения, см. в документации по предварительным просмотрам .
Установите значок рабочей области
Вы можете выбрать собственный значок для своего рабочего пространства, поместив файл PNG с именем icon.png
рядом с файлом dev.nix
в каталоге .idx
. IDX будет использовать этот значок для обозначения вашего рабочего пространства на панели инструментов.
Поскольку этот файл можно вернуть в систему контроля версий (например, Git), это хороший способ помочь всем, кто работает над вашим проектом, видеть один и тот же значок вашего проекта при использовании IDX. А поскольку файл может различаться в разных ветках Git, вы даже можете визуально различать рабочие области, например, при работе над «бета-версией» и «производственной» версией вашего приложения.
Превратите свои настройки в шаблон
Чтобы превратить конфигурацию вашей среды в «стартовую среду», с которой каждый может создавать новые проекты, см. документацию по созданию собственного шаблона .
Посмотреть все варианты настройки
Подробное описание схемы конфигурации среды см. в справочнике dev.nix
.