Saltar para o conteúdo principal
Os Replit Apps são configurados com dois arquivos: .replit e replit.nix. Eles afetam como o seu Replit App se comporta, desde a execução do código até as ferramentas de desenvolvimento e as linguagens. Esses arquivos de configuração ficam ocultos por padrão. Exiba-os no seu Replit App selecionando “Show hidden files” no menu da árvore de arquivos.
imagem

Arquivo replit.nix

O Replit usa o Nix para gerenciar pacotes e ambientes. O arquivo replit.nix é usado para: Especificar dependências do sistema: defina exatamente quais pacotes de software o seu Replit App exige, gerenciados através do Nix, um gerenciador de pacotes. Criar ambientes reprodutíveis: garanta que seu ambiente de desenvolvimento seja consistente e reprodutível, ideal para projetos colaborativos e testes em vários sistemas. Você pode gerenciar pacotes Nix visualmente através da ferramenta Dependencies. Saiba mais no guia de Dependências do Sistema. Para configurar pacotes com o arquivo replit.nix, você pode listar pacotes Nix no array deps, prefixados com pkgs.. Quaisquer alterações serão sincronizadas depois que seu shell for recarregado.

Arquivo .replit

O arquivo .replit controla o comportamento do seu Replit App. Ele usa o formato de configuração toml configuration format. Aqui estão alguns dos principais aspectos que podem ser configurados: Comando de execução (Run): especifique o comando que é executado quando o botão Run é selecionado. Cada template tem um comando de execução padrão para permitir a execução imediata do código. Para apps mais personalizados e complexos, use Workflows. Language Server Protocol (LSP): fornece recursos como autocompletar, navegação de código, destaque de sintaxe e linting e erros em tempo real. Variáveis de ambiente: defina e gerencie variáveis de ambiente essenciais para que suas aplicações sejam executadas corretamente. Dependências e pacotes: gerencie instalações e configurações de pacotes diretamente através do arquivo .replit, garantindo que seu Replit App tenha todas as ferramentas necessárias prontas na inicialização. Você pode gerenciar dependências visualmente através da ferramenta Dependencies. Saiba mais no guia de Módulos do Sistema. Para aplicações Python, o arquivo .replit padrão é assim:
A tabela a seguir apresenta uma visão de cada configuração dentro do arquivo .replit, explicando o que cada uma faz e seu impacto no ambiente do Replit App.
Chave de configuraçãoValor/ExemploDescrição
entrypointmain.pyEspecifica o arquivo principal a ser executado e exibido por padrão quando o editor é aberto. Você pode renomear o arquivo com base na sua aplicação.
modules["python-3.10:v18-20230807-322e88b"]Define versões específicas de linguagens de programação ou outras dependências importantes suportadas pelo Replit.
[nix]Especifica as configurações para usar o Nix, um gerenciador de pacotes, para gerenciar dependências do sistema. Consulte o documento de Gerenciamento de Dependências para mais informações.
channelstable-23_05Indica o canal Nix a ser usado, o que afeta as versões das dependências do sistema disponíveis.
packages["cowsay", "htop"]Especifica alguns pacotes Nix a serem instalados. Para um controle mais granular, você também pode usar o replit.nix.
[unitTest]Configura ajustes relacionados a testes unitários dentro do Replit App.
languagepython3Especifica a linguagem usada para testes unitários, indicando que o Python 3 é usado para escrever os testes.
[gitHubImport]Configurações que afetam como projetos são importados do GitHub, especificamente quais arquivos precisam estar incluídos.
requiredFiles[".replit", "replit.nix"]Lista os arquivos que precisam estar presentes ao importar o projeto para garantir que ele funcione corretamente.
[deployment]Contém configurações para publicar a aplicação do Replit App em um ambiente ao vivo.
run["python3", "main.py"]Comando executado para iniciar a aplicação durante a publicação.
deploymentTargetcloudrunEspecifica a plataforma de destino de publicação para hospedar a aplicação.
Agora que você tem uma ideia das configurações padrão do arquivo .replit, use as próximas seções para entender como configurar ajustes básicos e avançados para o seu Replit App.

Configurando ajustes básicos

Entrypoint

Este é o arquivo principal do seu projeto. Se você não definir uma propriedade run, o entrypoint é o arquivo que é executado pelo runtime.

Comando Run

A propriedade run no arquivo .replit é um recurso essencial que determina o comando inicial ou a série de comandos executados quando o botão Run é selecionado em um ambiente Replit. O comando Run pode ser especificado como uma string representando o comando a ser executado, ou como um array de strings representando o comando e os argumentos individuais desse comando. Algumas formas comuns de configurar o comando Run:
  • Comando único: Este exemplo mostra como passar um único comando para ser executado diretamente no Replit App. Com isso no seu arquivo .replit, pressionar o botão Run exibirá uma saudação no painel Console: Exemplo: run = "echo 'Hello, Replit!'"
  • Argumentos explícitos: Em algumas situações, pode ser vantajoso ser mais explícito, evitando a necessidade de interpretar aspas ou regras de interpolação do shell. Você pode reescrever o exemplo acima para separar os argumentos. Observe que você não precisa mais de ' e ", já que está passando explicitamente a saudação como o primeiro e único argumento para echo: Exemplo: run = ["echo", "Hello, Replit!"]
  • Vários comandos: Este exemplo mostra como executar vários processos, como um frontend e um backend, simultaneamente. Isso pode ser útil se você estiver desenvolvendo um backend em python e um frontend em typescript, onde cada servidor é vinculado a uma porta diferente: Exemplo: run = "python -m app & npm run start & wait"

Gerenciamento de processos

Embora vários comandos possam ser executados simultaneamente com &, você pode querer uma melhor experiência para distinguir os logs entre os serviços. Você pode adicionar dependências do sistema como o process-compose para orquestrar melhor vários processos.

Fase de Build

Para algumas linguagens ou runtimes, existe uma fase de compilação separada antes que o código possa ser executado (run). Isso abrange tanto linguagens compiladas como TypeScript, Golang ou Java, quanto oferece um parâmetro que você pode usar para redefinir seu ambiente, dados ou configuração antes que o próximo run seja invocado.
  • Compilando: Em um repositório TypeScript, você pode precisar executar tsc antes de executar seu código. Exemplo:

Incluindo variáveis de ambiente

Para fornecer variáveis de ambiente ao seu serviço antes da execução, você pode expandir a propriedade run em uma tabela. Esta é uma mudança mais elaborada e provavelmente requer mover a localização da sua propriedade run = "..." dentro do seu arquivo .replit. O diff a seguir mostra como fornecer o comando por meio de args em [run], além da variável NAME fornecida em [run.env]:

Interatividade

Programas interativos também podem ser iniciados através do botão Run, oferecendo uma forma de distinguir seu ambiente de desenvolvimento do terminal onde o seu programa é executado. Considere o seguinte script de contagem: Exemplo

Opções de configuração avançada

Explore as opções de configuração detalhadas disponíveis para o seu Replit App. Você pode personalizar seu ambiente de desenvolvimento, gerenciar comandos de execução, integrar serviços de linguagem e lidar com dependências.
ConfiguraçãoChaveValor/ExemploDescrição
onBootonBootonBoot = "npm install"Comando executado quando o Replit App inicializa.
compilecompile(Sem exemplo padrão)Comando executado antes do comando run, usado em linguagens compiladas como C++.
languagelanguagelanguage = "javascript"Especifica a linguagem durante uma importação do GitHub ou ao criar um Replit App.
entrypointentrypointentrypoint = "index.js"Arquivo principal a ser executado e exibido ao abrir o editor.
hiddenhiddenhidden = [".config", "package-lock.json"]Arquivos ou pastas a serem ocultados por padrão na árvore de arquivos lateral.
audioaudioaudio = trueAtiva o Áudio do Sistema quando definido como true.

Notas sobre o Áudio do Sistema

Ao definir audio = true no seu arquivo .replit, pode ser necessário executar kill 1 em um shell para forçar a nova configuração a entrar em vigor. Ao executar uma aplicação gráfica, você verá um par de fones de ouvido com uma caixa de seleção no canto inferior direito do painel Output. Devido a restrições do navegador, isso precisará ser ativado a cada atualização da página.

Configuração do packager

ConfiguraçãoChaveValor/ExemploDescrição
packagerlanguagepackager.language = "python3"Linguagem usada para operações de pacotes.
packager featuresguessImportspackager.features.guessImports = trueDetecta automaticamente pacotes a serem instalados antes de executar o Replit App.
packager featurespackageSearchpackager.features.packageSearch = trueAtiva o suporte ao packager quando definido como true.
packager featuresenabledForHostingpackager.features.enabledForHosting = falseDefine se hospedar o Replit App exige a execução de uma instalação de pacotes.
packagerafterInstallafterInstall = "echo 'package installed'"Comando executado após a instalação de um novo pacote via packager.
packagerignoredPathsignoredPaths = [".git"]Caminhos a serem ignorados ao tentar detectar pacotes.
packagerignoredPackagesignoredPackages = ["twitter", "discord"]Módulos que nunca devem tentar detectar um pacote durante a instalação.

Exemplo de configuração .replit para configuração do packager

Configuração de publicação (deployment)

ConfiguraçãoChaveValor/ExemploDescrição
deploymentrundeployment.run = "npm start"Comando executado quando um container de Deployment é iniciado.
deploymentbuilddeployment.build = "npm run build"Comando executado antes de executar um Deployment.
deploymentignorePortsdeployment.ignorePorts = trueSe true, o sucesso da publicação não exige uma verificação de porta aberta.

Exemplo de configuração .replit para configuração de publicação

A configuração do interpreter foi descontinuada e não está mais disponível no Replit. Em vez disso, recomenda-se usar os comandos Run para configurar como scripts e aplicações são executados dentro do ambiente do seu Replit App.

Configuração de portas

ConfiguraçãoChaveValor/ExemploDescrição
portslocalPortlocalPort = 3000Porta que o Replit vincula a uma porta externa.
portsexternalPortexternalPort = 80Porta publicamente acessível vinculada à localPort.

Exemplo de arquivo de configuração .replit para gerenciar portas

Acessando os metadados do ambiente do Replit App

Node.js

Para acessar todas as variáveis de ambiente: console.log(process.env); Para acessar uma única variável (REPL_SLUG): console.log(process.env.REPL_SLUG);

Python

Para acessar todas as variáveis de ambiente:
Para acessar uma única variável (REPL_SLUG):

Rust

Para acessar todas as variáveis de ambiente:
Para acessar uma única variável (REPL_SLUG):

Variáveis de ambiente

A seguir estão as variáveis de ambiente acessíveis de dentro do seu Replit App:
chavedescrição
REPL_OWNERO nome de usuário do proprietário do Replit App. Se o seu Replit App for baseado em texto e não tiver um servidor web, REPL_OWNER refletirá o valor do usuário atual que está acessando o Replit App
REPL_IDA string UUID exclusiva do seu Replit App
HOMEO caminho home do seu Replit App
systemO sistema operacional em execução no seu Replit App
LANGDefine o idioma e a codificação de caracteres do seu Replit App, afetando como o texto é processado e exibido
REPL_IMAGEA imagem docker que corresponde ao seu Replit App
REPL_LANGUAGEA linguagem de programação configurada para o seu Replit App, usada para determinar o ambiente de runtime e as ferramentas
REPL_PUBKEYSUm objeto JSON convertido em string contendo diferentes chaves de API públicas
REPL_SLUGUma versão simplificada e legível por máquina do nome do Replit App, adequada para uso em URLs e nomes de arquivos
PRYBAR_FILEO arquivo principal/entrypoint do seu Replit App
REPLIT_DEV_DOMAINFornece a URL replit.dev do seu Replit App no Project Editor. Observe que esta variável de ambiente não está disponível em Deployments