Настройте рабочее пространство Firebase Studio,Настройте рабочее пространство Firebase Studio,Настройте рабочее пространство Firebase Studio,Настройте рабочее пространство Firebase Studio

Firebase Studio позволяет вам адаптировать рабочее пространство к уникальным потребностям вашего проекта, определив один файл конфигурации .idx/dev.nix , который описывает:

  • Системные инструменты , которые вам необходимо запускать (например, из Терминала), такие как компиляторы или другие двоичные файлы.
  • Установленные расширения (например, поддержка языков программирования).
  • Как должны отображаться предварительные просмотры вашего приложения (например, команды для запуска вашего веб-сервера).
  • Глобальные переменные среды, доступные локальным серверам, работающим в вашей рабочей области.

См . ссылку на dev.nix для получения полного описания того, что доступно.

Никс и Firebase Studio

Firebase Studio использует Nix для определения конфигурации среды для каждого рабочего пространства. В частности, Firebase Studio использует:

  • Язык программирования Nix для описания сред рабочей области. Nix — функциональный язык программирования. Атрибуты и библиотеки пакетов, которые вы можете определить в файле dev.nix , соответствуют синтаксису набора атрибутов Nix .

  • Менеджер пакетов Nix для управления системными инструментами, доступными в вашем рабочем пространстве. Это похоже на менеджеры пакетов для конкретной ОС, такие как APT ( apt и apt-get ), Homebrew ( brew ) и dpkg .

Поскольку среды Nix воспроизводимы и декларативны, в контексте Firebase Studio это означает, что вы можете поделиться своим файлом конфигурации 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_20
  ];

  # 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_20
  ];
  ...
}

Это отличается от того, как вы обычно устанавливаете системные пакеты с помощью менеджеров пакетов для конкретной ОС, таких как APT ( apt и apt-get ), Homebrew ( brew ) и dpkg . Декларативное описание того, какие именно системные пакеты необходимы, означает, что рабочие пространства Firebase Studio легче совместно использовать и воспроизводить.

Используйте двоичные файлы локального узла

Как и на вашем локальном компьютере, двоичные файлы, связанные с локально установленными пакетами узлов (например, пакеты, определенные в вашем package.json ), могут быть выполнены на панели терминала, вызвав их с помощью команды npx .

В качестве дополнительного удобства, если вы находитесь в каталоге с папкой node_modules (например, в корневом каталоге веб-проекта), локально установленные двоичные файлы можно вызывать напрямую, без префикса npx .

Добавьте компоненты gcloud

Конфигурация интерфейса командной строки gcloud для Google Cloud по умолчанию доступна для всех рабочих пространств Firebase Studio .

Если вам нужны дополнительные компоненты, вы можете добавить их в файл dev.nix :

{ pkgs }: {
  packages = [
    ...
    (pkgs.google-cloud-sdk.withExtraComponents [
      pkgs.google-cloud-sdk.components.cloud-datastore-emulator
    ])
    ...
  ];
}

Добавьте расширения IDE

Вы можете установить расширения в Firebase Studio используя реестр расширений OpenVSX , двумя способами:

  • Используйте панель «Расширения» в Firebase Studio для обнаружения и установки расширений. Этот подход лучше всего подходит для пользовательских расширений , таких как:

    • Пользовательские цветовые темы
    • Эмуляция редактора, например VSCodeVim
  • Добавьте расширения в ваш файл 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"
  ];
  ...
}

Добавить общие услуги

Firebase Studio также предлагает упрощенную настройку и настройку общих сервисов, которые могут вам понадобиться во время разработки, в том числе:

  • Контейнеры
    • Докер ( services.docker.* )
  • Обмен сообщениями
    • Эмулятор Pub/Sub ( services.pubsub.* )
  • Базы данных
    • MySQL ( services.mysql.* )
    • Постгрес ( services.postgres.* )
    • Redis ( services.redis.* )
    • Гаечный ключ ( services.spanner.* )

Подробную информацию о включении этих служб в ваше рабочее пространство см. в разделах services.* справочника по dev.nix .

Настройка предварительного просмотра

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

Установите значок рабочей области

Вы можете выбрать собственный значок для своего рабочего пространства, поместив PNG-файл с именем icon.png в каталог .idx на том же уровне, что и ваш файл dev.nix . Firebase Studio затем будет использовать этот значок для обозначения вашего рабочего пространства на панели управления.

Поскольку этот файл можно вернуть в систему контроля версий (например, Git), это хороший способ помочь всем, кто работает над вашим проектом, видеть один и тот же значок вашего проекта при использовании Firebase Studio . А поскольку файл может различаться в разных ветках Git, вы можете использовать этот значок, чтобы визуально различать рабочие области бета-версии и рабочей среды приложения, а также для других целей.

Превратите свои настройки в шаблон

Чтобы превратить конфигурацию вашей среды в «стартовую среду», которую каждый может использовать для создания новых проектов, см. документацию «Создание пользовательских шаблонов» .

Изучите все варианты настройки

Подробное описание схемы конфигурации среды см. в справочнике dev.nix

Следующие шаги