Firebase Studio позволяет настроить рабочее пространство под уникальные потребности вашего проекта, определив единый конфигурационный файл .idx/dev.nix , описывающий:
- Системные инструменты , необходимые для запуска (например, из терминала), такие как компиляторы или другие исполняемые файлы.
- Необходимые расширения, которые вам нужно установить (например, поддержка языков программирования).
- Как должны отображаться предварительные просмотры вашего приложения (например, команды для запуска веб-сервера).
- Глобальные переменные среды, доступные для локальных серверов, работающих в вашей рабочей области.
Полное описание доступных функций см. в справочнике dev.nix .
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";
};
};
};
}
Добавить системные инструменты
Чтобы добавить в рабочую область системные инструменты, такие как компиляторы или программы командной строки для облачных сервисов, найдите уникальный идентификатор пакета в реестре пакетов 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 .
Используйте локальные исполняемые файлы Node.js.
Как и на локальном компьютере, исполняемые файлы, относящиеся к локально установленным пакетам Node.js (например, пакетам, определенным в вашем package.json ), можно запустить в терминале, используя команду npx .
Для дополнительного удобства, если вы находитесь в каталоге с папкой node_modules (например, в корневом каталоге веб-проекта), локально установленные бинарные файлы можно запускать напрямую, без префикса npx .
Добавить компоненты gcloud
Конфигурация CLI 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 также предлагает упрощенную настройку и конфигурацию для распространенных сервисов, которые могут вам понадобиться во время разработки, включая:
- Контейнеры
- Docker (
services.docker.*)
- Docker (
- Обмен сообщениями
- Эмулятор Pub/Sub (
services.pubsub.*)
- Эмулятор Pub/Sub (
- Базы данных
- MySQL (
services.mysql.*) - Postgres (
services.postgres.*) - Redis (
services.redis.*) - Spanner (
services.spanner.*)
- MySQL (
Подробную информацию о включении этих служб в вашем рабочем пространстве см. в разделах services.* справочника dev.nix .
Настроить предварительный просмотр
Подробную информацию о настройке предварительного просмотра приложения см. в разделе «Предварительный просмотр приложения» .
Установите значок рабочего пространства
Вы можете выбрать собственную иконку для своего рабочего пространства, поместив файл PNG с именем icon.png в каталог .idx на том же уровне, что и файл dev.nix . Firebase Studio будет использовать эту иконку для отображения вашего рабочего пространства на панели мониторинга.
Поскольку этот файл можно добавить в систему контроля версий (например, Git), это хороший способ помочь всем, кто работает над вашим проектом, видеть один и тот же значок вашего проекта при использовании Firebase Studio . А поскольку файл может различаться в разных ветках Git, вы можете использовать этот значок для визуального различения рабочих областей бета-версии и продакшена, а также для других целей.
Превратите свои настройки в шаблон.
Чтобы превратить конфигурацию вашей среды в «стартовую среду», которую может использовать любой желающий для создания новых проектов, см. документацию по созданию пользовательских шаблонов .
Изучите все варианты персонализации.
Подробное описание схемы конфигурации среды см. в справочнике dev.nix .
Загрузите ваши файлы
Чтобы загрузить файлы в виде ZIP-архива:
- Щелкните правой кнопкой мыши по любой папке в панели Проводника и выберите «Заархивировать и загрузить» .
Чтобы загрузить все файлы из каталога вашего проекта:
Выберите Файл > Открыть папку .
Примите каталог
/home/userпо умолчанию.После загрузки файлов щелкните правой кнопкой мыши по рабочей директории и выберите «Заархивировать и загрузить» . Если вы используете App Prototyping agent , вашей рабочей директорией будет
studio. Если вы используете шаблон или загруженный проект, это будет название вашего проекта.Когда появится запрос на пересоздание среды, нажмите «Отмена» .
После завершения загрузки откройте свою рабочую директорию из меню «Файл» , чтобы вернуться в рабочее пространство.
Следующие шаги
- Интеграция с Firebase и сервисами Google .
- Создавайте пользовательские шаблоны .
- Добавьте кнопку «Открыть в Firebase Studio .
- Узнайте больше о рабочих пространствах Firebase Studio .