Skip to main content
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. Exiba-os no seu Replit App selecionando “Show hidden files” no menu da árvore de arquivos.
image

Arquivo replit.nix

O Replit usa 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 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 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 após seu 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 de código imediatamente. Para apps mais personalizados e complexos, use Workflows. Language Server Protocol (LSP): Fornece recursos como auto-completar, navegação de código, destaque de código e linting e erros em tempo real. Variáveis de ambiente: Defina e gerencie variáveis de ambiente essenciais para que suas aplicações funcionem corretamente. Dependências e pacotes: Gerencie instalações de pacotes e configurações diretamente pelo 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 é:
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 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 principais suportadas pelo Replit.
[nix]Especifica 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 para instalar. Para controle mais refinado, você também pode usar replit.nix.
[unitTest]Configura as definições relacionadas a testes unitários no Replit App.
languagepython3Especifica a linguagem usada para testes unitários, indicando que Python 3 é usado para escrever 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 fazer o deploy da aplicação do Replit App para um ambiente ativo.
run["python3", "main.py"]Comando executado para iniciar a aplicação durante o deployment.
deploymentTargetcloudrunEspecifica a plataforma de destino do deployment 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 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 executado pelo runtime.
entrypoint = "<nome-do-arquivo>.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 ser executado, ou como um array de strings representando o comando e os 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 do shell. Você pode reescrever o exemplo acima para separar os argumentos. Note 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 ao 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 do 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 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.
  • Compilação: 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 complexa e provavelmente requer mover onde sua propriedade run = "..." está localizada dentro do arquivo .replit. O diff a seguir mostra o fornecimento do comando por meio de args em [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 gerenciar dependências.
ConfiguraçãoChaveValor/ExemploDescrição
onBootonBootonBoot = "npm install"Comando que é executado quando o Replit App inicializa.
compilecompile(Sem exemplo padrão)Comando que é 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 ocultar por padrão na árvore de arquivos lateral.
audioaudioaudio = trueHabilita o Áudio em Todo o Sistema quando definido como true.

Notas sobre Áudio em Todo o 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 habilitado a cada vez que você atualizar.
# Ensure this is at the top of your `.replit` file, outside of any `[`-bracketed section
audio = true

Configuração do packager

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

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

# 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 que é executado quando um contêiner de Deployment inicia.
deploymentbuilddeployment.build = "npm run build"Comando que é executado antes de rodar um Deployment.
deploymentignorePortsdeployment.ignorePorts = trueSe true, o sucesso do deployment não requer uma verificação de porta aberta.

Exemplo de configuração .replit para configuração de 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ê é encorajado a usar os comandos Run para configurar como scripts e aplicações são executados no seu ambiente Replit App.

Configuração de porta

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

Exemplo de arquivo de configuração .replit para gerenciar 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 é baseado em texto e não tem servidor web, REPL_OWNER refletirá o valor do usuário atual acessando 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 de 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 arquivo
PRYBAR_FILEO arquivo principal/entrypoint do seu Replit App
REPLIT_DEV_DOMAINFornece a URL replit.dev para o seu Replit App no Project Editor. Note que esta variável de ambiente não está disponível em Deployments