O Firebase Studio permite que você personalize seu espaço de trabalho de acordo com as necessidades
específicas do projeto definindo um único arquivo de configuração .idx/dev.nix
que
descreve:
- As ferramentas do sistema que você precisa executar (por exemplo, no Terminal), como compiladores ou outros binários.
- As extensões que você precisa instalar (por exemplo, suporte a linguagem de programação).
- Como as visualizações do app vão aparecer (por exemplo, os comandos para executar o servidor da Web).
- Variáveis de ambiente globais disponíveis para servidores locais em execução no seu espaço de trabalho.
Consulte a referência dev.nix
para uma descrição
completa do que está disponível.
Nix e Firebase Studio
O Firebase Studio usa o Nix para definir a configuração do ambiente para cada espaço de trabalho. Especificamente, Firebase Studio usa:
A linguagem de programação Nix para descrever ambientes de espaço de trabalho. O Nix é uma linguagem de programação funcional. Os atributos e as bibliotecas de pacotes que você pode definir no arquivo
dev.nix
seguem a sintaxe do conjunto de atributos Nix.O gerenciador de pacotes Nix para gerenciar as ferramentas do sistema disponíveis no seu espaço de trabalho. Isso é semelhante a gerenciadores de pacotes específicos do SO, como APT (
apt
eapt-get
), Homebrew (brew
) edpkg
.
Como os ambientes Nix são reproduzíveis e declarativos, no contexto de Firebase Studio, isso significa que você pode compartilhar seu arquivo de configuração do Nix como parte do repositório Git para garantir que todos que trabalham no projeto tenham a mesma configuração de ambiente.
Um exemplo simples
O exemplo a seguir mostra uma configuração básica do ambiente que ativa as visualizações:
{ 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";
};
};
};
}
Adicionar ferramentas do sistema
Para adicionar ferramentas do sistema ao seu espaço de trabalho, como compiladores ou programas de CLI para
serviços de nuvem, encontre o ID de pacote exclusivo no registro de pacotes
Nix e adicione-o ao objeto packages
do arquivo dev.nix
, com o prefixo "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
];
...
}
Isso é diferente de como você normalmente instala pacotes do sistema usando
gerenciadores de pacotes específicos do SO, como APT (apt
e apt-get
), Homebrew
(brew
) e dpkg
. A descrição declarativa de quais pacotes de sistema são
necessários significa que os espaços de trabalho Firebase Studio são mais fáceis de compartilhar e reproduzir.
Usar binários de nó locais
Assim como na máquina local, os binários relacionados a pacotes de nó instalados localmente (por exemplo, pacotes definidos no package.json
) podem ser
executados em um painel do Terminal, invocando-os com o
comando npx
.
Como conveniência adicional, se você estiver em um diretório com uma pasta node_modules
,
como o diretório raiz de um projeto da Web, os binários instalados localmente
poderão ser invocados diretamente, sem o prefixo npx
.
Adicionar componentes gcloud
Uma configuração padrão da
CLI gcloud
para Google Cloud está
disponível para todos os espaços de trabalho Firebase Studio.
Se você precisar de outros componentes, adicione-os ao arquivo dev.nix
:
{ pkgs }: {
packages = [
...
(pkgs.google-cloud-sdk.withExtraComponents [
pkgs.google-cloud-sdk.components.cloud-datastore-emulator
])
...
];
}
Adicionar extensões de ambiente de desenvolvimento integrado
É possível instalar extensões no Firebase Studio usando o registro de extensão OpenVSX de duas maneiras:
Use o painel Extensions no Firebase Studio para descobrir e instalar extensões. Essa abordagem é melhor para extensões específicas do usuário, como:
- Temas de cores personalizados
- Emulação de editor, como o VSCodeVim
Adicione extensões ao arquivo
dev.nix
. Essas extensões serão instaladas automaticamente quando você compartilhar a configuração do espaço de trabalho. Essa abordagem é melhor para extensões específicas do projeto, como:- Extensões de linguagem de programação, incluindo depuradores específicos de linguagem
- Extensões oficiais para serviços de nuvem usados no seu projeto
- Formatadores de código
Para a última abordagem, é possível incluir extensões do ambiente de desenvolvimento integrado no arquivo dev.nix
encontrando o ID de extensão totalmente qualificado (do formulário
<publisher>.<id>
) e adicionando-o ao objeto idx.extensions
da seguinte maneira:
{ pkgs, ... }: {
...
# Search for the extensions you want on https://open-vsx.org/ and use the format
# "<publisher>.<id>"
idx.extensions = [
"angular.ng-template"
];
...
}
Adicionar serviços comuns
O Firebase Studio também oferece configuração e configuração simplificadas para serviços comuns que você pode precisar durante o desenvolvimento, incluindo:
- Contêineres
- Docker (
services.docker.*
)
- Docker (
- Mensagens
- Emulador do Pub/Sub (
services.pubsub.*
)
- Emulador do Pub/Sub (
- Bancos de dados
- MySQL (
services.mysql.*
) - Postgres (
services.postgres.*
) - Redis (
services.redis.*
) - Spanner (
services.spanner.*
)
- MySQL (
Para saber como ativar esses serviços no seu espaço de trabalho, consulte as partes services.*
da referência dev.nix
.
Personalizar visualizações
Para saber como personalizar as prévias do app, consulte Visualizar seu app.
Definir o ícone do seu espaço de trabalho
Para escolher um ícone personalizado para o espaço de trabalho, coloque um arquivo PNG chamado
icon.png
dentro do diretório .idx
no mesmo nível do arquivo dev.nix
.
O Firebase Studio vai usar esse ícone para representar seu espaço de trabalho no
painel.
Como esse arquivo pode ser verificado no controle de origem (como o Git), essa é uma boa maneira de ajudar todos que trabalham no projeto a ver o mesmo ícone ao usar Firebase Studio. Como o arquivo pode variar de acordo com as filiais do Git, use esse ícone para distinguir visualmente os espaços de trabalho de apps beta e de produção, entre outras finalidades.
Transformar as personalizações em um modelo
Para transformar a configuração do ambiente em um "ambiente inicial" que qualquer pessoa pode usar para criar novos projetos, consulte a documentação sobre Criar modelos personalizados.
Conheça todas as opções de personalização
Confira a referência dev.nix
para uma
descrição detalhada do esquema de configuração do ambiente.
Próximas etapas
- Integrar com o Firebase e os serviços do Google.
- Crie modelos personalizados.
- Adicione um botão "Abrir em Firebase Studio".
- Saiba mais sobre os espaços de trabalho do Firebase Studio.