Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.replit.com/llms.txt

Use this file to discover all available pages before exploring further.

Os Replit Apps são configurados com dois arquivos: o .replit e o replit.nix. Eles afetam como o seu Replit App se comporta, desde a execução do código até as ferramentas de desenvolvimento e linguagens. Esses arquivos de configuração estão ocultos por padrão. Mostre-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 de sistema: Defina exatamente quais pacotes de software seu Replit App requer, gerenciados pelo Nix, um gerenciador de pacotes. Criar ambientes reproduzíveis: Garanta que seu ambiente de desenvolvimento seja consistente e reproduzível, ideal para projetos colaborativos e testes em múltiplos sistemas. Você pode gerenciar pacotes Nix visualmente por meio da ferramenta Dependencies. Saiba mais no guia de Dependências de 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 após o shell ser recarregado.
{ pkgs }: {
  deps = [
    pkgs.nodejs-19_x
    pkgs.nodePackages.typescript-language-server
    pkgs.yarn
    pkgs.replitPackages.jest
  ];
}

Arquivo .replit

O arquivo .replit controla o comportamento do seu Replit App. Ele usa o formato de configuração toml. Aqui estão alguns dos principais aspectos que podem ser configurados: Comando Run: Especifique o comando que é executado quando o botão Run é selecionado. Cada template tem um comando run padrão para permitir a execução imediata do código. Para aplicativos mais personalizados e complexos, use Workflows. Language Server Protocol (LSP): Fornece recursos como autocompletar, navegação de código, realce de código e linting e erros em tempo real. Variáveis de ambiente: Defina e gerencie variáveis de ambiente essenciais para que seus aplicativos sejam executados corretamente. Dependências e pacotes: Gerencie instalações e configurações de pacotes diretamente pelo arquivo .replit, garantindo que seu Replit App tenha todas as ferramentas necessárias prontas ao inicializar. Você pode gerenciar dependências visualmente por meio da ferramenta Dependencies. Saiba mais no guia de Módulos de Sistema. Para aplicativos Python, o arquivo .replit padrão se parece com:
entrypoint = "main.py"
modules = ["python-3.10:v18-20230807-322e88b"]

[nix]
channel = "stable-23_05"

[unitTest]
language = "python3"

[gitHubImport]
requiredFiles = [".replit", "replit.nix"]

[deployment]
run = ["python3", "main.py"]
deploymentTarget = "cloudrun"
A tabela a seguir fornece uma visão de cada configuração no arquivo .replit, explicando o que cada configuração 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 no seu aplicativo.
modules["python-3.10:v18-20230807-322e88b"]Define versões específicas de linguagens de programação ou outras dependências principais suportadas pelo Replit.
[nix]Especifica configurações para usar o Nix, um gerenciador de pacotes, para gerenciar dependências de 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 de sistema disponíveis.
packages["cowsay", "htop"]Especifica alguns pacotes Nix para instalar. Para um controle mais refinado, você também pode usar replit.nix.
[unitTest]Define configurações relacionadas a testes unitários dentro do Replit App.
languagepython3Especifica a linguagem usada para testes unitários, indicando que Python 3 é usado para escrever os testes.
[gitHubImport]Configurações que afetam como os projetos são importados do GitHub, especificamente quais arquivos devem ser incluídos.
requiredFiles[".replit", "replit.nix"]Lista os arquivos que devem estar presentes ao importar o projeto para garantir que ele funcione corretamente.
[deployment]Contém configurações para publicar o aplicativo do Replit App em um ambiente ao vivo.
run["python3", "main.py"]Comando executado para iniciar o aplicativo durante o deployment.
deploymentTargetcloudrunEspecifica a plataforma de destino do deployment para hospedar o aplicativo.
Agora que você tem uma ideia das configurações padrão do arquivo .replit, use as próximas seções para entender como configurar as definições básicas e avançadas para o seu Replit App.

Configurando definições básicas

Entrypoint

Este é o arquivo principal do seu projeto. Se você não definir uma propriedade run, o entrypoint é o arquivo que é executado pelo runtime.
entrypoint = "<file-name>.py"

Comando Run

A propriedade run no arquivo .replit é um recurso chave que determina o comando inicial ou 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 executar, ou como um array de strings representando o comando e argumentos individuais para esse comando. Algumas formas comuns de configurar o comando Run:
  • Comando único: Este exemplo mostra como passar um único comando para executar 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 benéfico ser mais explícito, evitando a necessidade de analisar aspas ou regras de interpolação de shell. Você pode reescrever o exemplo acima para separar os argumentos. Observe que você não precisa mais de ' e ", pois está passando explicitamente a saudação como o primeiro e único argumento para echo: Exemplo: run = ["echo", "Hello, Replit!"]
  • Múltiplos comandos: Este exemplo mostra como executar múltiplos processos, como um frontend e um backend, simultaneamente. Isso pode ser útil para desenvolver um backend Python e um frontend TypeScript, onde cada servidor se vincula a uma porta diferente: Exemplo: run = "python -m app & npm run start & wait"

Gerenciamento de processos

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

Fase Build

Para algumas linguagens ou runtimes, há uma fase de compilação separada antes que o código possa ser executado. Isso cobre 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:
build = "tsc app.ts"
run = "node app.js"

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 onde sua propriedade run = "..." está localizada dentro do seu arquivo .replit. O diff a seguir mostra o fornecimento do comando por meio de args do [run], bem como a variável NAME fornecida em [run.env]:
-run = ["bash", "-c", "echo \"Hello, $NAME!\""]

 modules = ["nodejs-20"]

 hidden = [".pythonlibs"]

+# We need to move our new [run] down past all the
+# top-level properties that do not start with a `[`!
+[run]
+args = ["bash", "-c", "echo \"Hello, $NAME!\""]
+
+[run.env]
+NAME="Replit"

 [nix]
 channel = "stable-23_11"

Interatividade

Programas interativos também podem ser iniciados pelo botão Run, oferecendo uma forma de distinguir seu ambiente de desenvolvimento do terminal onde seu programa está sendo executado. Considere o seguinte script de contagem: Exemplo
[run]
args = ["bash", "-c", """
count=0
while read -p "$PROMPT" -r next && [ -n "$next" ]; do
    count=$((count+next))
done
echo "The numbers you entered sum to $count!"
"""]

[run.env]
PROMPT = "Next number ([Enter] to end): "

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

Explore as opções de configuração detalhadas disponíveis para o seu Replit App. Você pode personalizar seu ambiente de desenvolvimento, gerenciar comandos run, integrar serviços de linguagem e lidar com dependências.
ConfiguraçãoChaveValor/ExemploDescrição
onBootonBootonBoot = "npm install"Comando que é executado quando o Replit App inicia.
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 para executar e exibir ao abrir o editor.
hiddenhiddenhidden = [".config", "package-lock.json"]Arquivos ou pastas para ocultar por padrão na árvore de arquivos lateral.
audioaudioaudio = trueHabilita o Áudio do Sistema quando definido como true.

Notas sobre o Áudio do Sistema

Ao definir audio = true no seu arquivo .replit, talvez seja necessário executar kill 1 em um shell para forçar a nova configuração a entrar em vigor. Ao executar um aplicativo gráfico, você verá um par de fones de ouvido com uma caixa de seleção no canto inferior direito do painel Output. Devido às restrições do navegador, isso precisará ser habilitado toda vez que você atualizar.
# Ensure this is at the top of your `.replit` file, outside of any `[`-bracketed section
audio = true

Configuração do gerenciador de pacotes

ConfiguraçãoChaveValor/ExemploDescrição
packagerlanguagepackager.language = "python3"Linguagem usada para operações de pacotes.
packager featuresguessImportspackager.features.guessImports = trueDetecta automaticamente os pacotes a instalar antes de executar o Replit App.
packager featurespackageSearchpackager.features.packageSearch = trueHabilita suporte ao gerenciador de pacotes quando definido como true.
packager featuresenabledForHostingpackager.features.enabledForHosting = falseDefine se hospedar o Replit App requer a execução de uma instalação de pacote.
packagerafterInstallafterInstall = "echo 'package installed'"Comando executado após a instalação de um novo pacote pelo gerenciador.
packagerignoredPathsignoredPaths = [".git"]Caminhos a ignorar 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 o gerenciador de pacotes

# Define the language for the Replit App
packager.language = "python3"

# Enable features for automatic package management
[packager.features]
guessImports = true
packageSearch = true
enabledForHosting = false

# Command to run after each package installation
packager.afterInstall = "echo 'Package installed successfully'"

# Define paths and packages that should be ignored by the package manager
packager.ignoredPaths = [".git", "node_modules"]
packager.ignoredPackages = ["twitter", "discord"]

# Additional deployment settings
[deployment]
run = ["python3", "app.py"]

Configuração de deployment

ConfiguraçãoChaveValor/ExemploDescrição
deploymentrundeployment.run = "npm start"Comando executado quando um contêiner de Deployment inicia.
deploymentbuilddeployment.build = "npm run build"Comando executado antes de executar um Deployment.
deploymentignorePortsdeployment.ignorePorts = trueSe true, o sucesso do deployment não requer verificação de porta aberta.

Exemplo de configuração .replit para deployment


# Specifies the main entry point for the project
entrypoint = "app.js"

# Configuration settings for deploying the application
[deployment]
run = "npm start"
build = "npm run build"
ignorePorts = true
A configuração do Interpreter foi descontinuada e não está mais disponível no Replit. Em vez disso, você é incentivado a usar os comandos Run para configurar como scripts e aplicativos são executados dentro do seu ambiente 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 ao localPort.

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

# Networking configuration to expose your application on specific ports
[[ports]]
localPort = 3000
externalPort = 80

Acessando 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:
import os
print(os.environ)
Para acessar uma única variável (REPL_SLUG):
import os
variable = os.environ.get('REPL_SLUG')
print(variable)

Rust

Para acessar todas as variáveis de ambiente:
use std::env;
fn main() {
    for (key, value) in env::vars() {
        println!("{}: {}", key, value);
    }
}
Para acessar uma única variável (REPL_SLUG):
use std::env;
fn main() {
    let variable = env::var("REPL_SLUG").unwrap();
    println!("{}", variable);
}

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 servidor web, REPL_OWNER refletirá o valor do usuário atual que acessa o Replit App
REPL_IDA string UUID única do seu Replit App
HOMEO caminho home do seu Replit App
systemO sistema operacional em execução no seu Replit App
LANGDefine a linguagem e a codificação de caracteres para o 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 em formato 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 o URL replit.dev para o seu Replit App no Editor de Projeto. Observe que esta variável de ambiente não está disponível em Deployments