Saltar para o conteúdo principal

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: .replit e replit.nix. Eles afetam como seu Replit App se comporta, desde a execução do código até as ferramentas de desenvolvimento e linguagens. Esses arquivos de configuração ficam ocultos por padrão. Exiba-os no seu Replit App selecionando “Mostrar arquivos ocultos” no menu da árvore de arquivos.
imagem

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 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 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 o recarregamento do seu Shell.
{ 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 de execução: 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 do código imediatamente. Para apps mais personalizados e complexos, use os 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 o funcionamento correto das suas aplicações. 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 disponíveis na inicialização. Você pode gerenciar dependências visualmente por meio 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 apresenta uma visão de cada configuração dentro do 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 uso do 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 um controle mais refinado, você também pode usar o 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 estar presentes.
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 implantar a aplicação do Replit App em um ambiente ao vivo.
run["python3", "main.py"]Comando executado para iniciar a aplicação durante a implantação.
deploymentTargetcloudrunEspecifica a plataforma de destino da implantaçã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 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 = "<file-name>.py"

Comando Run

A propriedade run no arquivo .replit é um recurso fundamental 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 executar, ou como um array de strings representando o comando e seus argumentos individuais. 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 útil ser mais explícito, evitando a necessidade de interpretar aspas ou regras de interpolação do Shell. Você pode reescrever o exemplo acima separando os argumentos. Note que você não precisa mais usar ' e " ao mesmo tempo, 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 simultaneamente, como um frontend e um backend. Isso pode ser útil ao desenvolver um backend em Python e um frontend em TypeScript, onde cada servidor se conecta 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 melhor experiência para distinguir os logs entre os serviços. Você pode adicionar dependências do sistema como process-compose para orquestrar melhor múltiplos processos.

Fase de Build

Para algumas linguagens ou runtimes, há uma fase de compilação separada antes que o código possa ser executado com run. Isso se aplica tanto a linguagens compiladas como TypeScript, Golang ou Java, quanto para oferecer 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, pode ser necessário 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 a propriedade run = "..." está localizada dentro do seu arquivo .replit. O diff a seguir mostra como fornecer o comando por meio dos args de [run], além da 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 o 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ç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 que é executado quando o Replit App inicia.
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 executar e exibir ao abrir o editor.
hiddenhiddenhidden = [".config", "package-lock.json"]Arquivos ou pastas a ocultar por padrão na árvore de arquivos lateral.
audioaudioaudio = trueAtiva o Áudio em todo o sistema quando definido como true.

Notas sobre o Á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 ter efeito. 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 toda vez que você atualizar a página.
# 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.
recursos do packagerguessImportspackager.features.guessImports = trueAdivinha automaticamente os pacotes a instalar antes de executar o Replit App.
recursos do packagerpackageSearchpackager.features.packageSearch = trueAtiva o suporte ao gerenciador de pacotes quando definido como true.
recursos do packagerenabledForHostingpackager.features.enabledForHosting = falseDefine se a hospedagem do Replit App requer 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 gerenciador de pacotes.
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 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 implantação

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 implantação não requer verificação de porta aberta.

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


# 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 interpretador 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 no 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 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 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 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 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 arquivos
PRYBAR_FILEO arquivo principal/entrypoint do seu Replit App
REPLIT_DEV_DOMAINFornece a URL replit.dev para o seu Replit App no Editor de Projetos. Observe que esta variável de ambiente não está disponível em Deployments