O REPL & Experimentos Rápidos
O REPL (Read-Eval-Print Loop) do Node.js é um shell interativo para sondar APIs, inspecionar objetos e validar suposições antes de confirmar código em um arquivo.
Busque em todas as páginas da documentação
O REPL (Read-Eval-Print Loop) do Node.js é um shell interativo para sondar APIs, inspecionar objetos e validar suposições antes de confirmar código em um arquivo.
Cartão de receita de referência rápida - pronto para copiar e colar.
node # inicia o REPL
node --env-file=.env # pré-carrega variáveis de ambiente no contexto do REPL
node -e "console.log(process.version)"
node --input-type=module -e "import { ok } from 'node:assert'; ok(1)"Quando usar isso:
fetch única antes de integrá-la a um serviçoprocess ou import.meta se comportam# Inicia o REPL com arquivo de ambiente (Node 20+)
node --env-file=.env.development> const { readFile } = await import('node:fs/promises')
> const raw = await readFile('package.json', 'utf8')
> const pkg = JSON.parse(raw)
> pkg.engines
{ node: '>=24.18.0 <25' }
> // Inspeciona cabeçalhos do fetch integrado
> const res = await fetch('https://httpbin.org/headers')
> [...res.headers.entries()].slice(0, 3)
[
[ 'content-type', 'application/json' ],
[ 'content-length', '...' ],
[ 'date', '...' ]
]
> .save repl-session.js
> .exitO que isso demonstra:
await de nível superior funciona no REPL sem precisar envolvê-lo em uma função asyncimport() dinâmico carrega built-ins ESM dentro da sessão do REPL.save grava cada expressão avaliada em um arquivo para limpeza posterior--env-file espelha o carregamento de configuração de produção durante os experimentosglobal) e imprime os resultados das expressões._ contém o último resultado avaliado; _error contém o último erro lançado (convenção do REPL do Node)..help, .break, .clear) são metacomandos e não são enviados ao V8.| Comando | Ação |
|---|---|
.help | Lista todos os comandos de ponto |
.save file | Grava o histórico da sessão em disco |
.load file | Executa um arquivo no contexto atual |
.break | Aborta a entrada de múltiplas linhas |
.editor | Abre o modo de editor de múltiplas linhas |
# Executa TypeScript em one-liners semelhantes ao REPL com tsx
npx tsx -e "const x: number = 42; console.log(x)"
# Ou inicia o REPL tsx para experimentos tipados
npx tsxPara exploração tipada, o REPL tsx é preferível ao node puro quando você precisa de interfaces e genéricos.
.save diretamente - sessões salvas incluem prompts > e podem faltar imports. Correção: refatore para um módulo adequado e adicione testes..node_repl_history. Correção: use .clear em linhas sensíveis; nunca use .save em sessões com segredos.require não é definido em projetos com ESM primeiro. Correção: use await import() ou inicie com --input-type=module.console.log(hugeArray) bloqueia o terminal. Correção: use util.inspect(obj, { depth: 2, maxArrayLength: 10 }).node:test.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
node -e / tsx -e | Verificações de expressão única em CI ou scripts | Exploração multi-etapas |
Arquivo .mjs de rascunho + --watch | Experimentos repetíveis que você irá confirmar | Verificações descartáveis de 10 segundos |
node:test + modo watch | Experimentos que devem se tornar testes de regressão | Inspeção pura de objetos |
Debugger (node inspect) | Depuração passo a passo de código existente | Prototipagem de novas APIs do zero |
Sim, no Node 24. Você pode usar await fetch(...) diretamente no prompt sem um wrapper async.
Inicie com node --env-file=.env (Node 20+). As variáveis aparecem em process.env imediatamente.
O REPL integrado é JavaScript. Use npx tsx para um REPL com suporte a TypeScript.
-p avalia e imprime a expressão (implica -e). node -p "2+2" produz 4.
Pressione .break ou Ctrl+C duas vezes. .break aborta sem encerrar a sessão do REPL.
~/.node_repl_history por padrão. Defina NODE_REPL_HISTORY para alterar o caminho.
Em um projeto com "type": "module", use await import('pkg') em vez de require.
Após um erro lançado, _error o referencia. console.error(_error) imprime a stack trace.
Não. Nunca abra o REPL em servidores de produção - use logs somente leitura, métricas e reprodução local em vez disso.
node --input-type=module
> import.meta.url
'file:///...'Sim, via NODE_REPL_HISTORY, servidores repl customizados ou programaticamente com repl.start({ prompt: 'api> ' }).
Copie a lógica validada para um arquivo node:test e substitua as asserções manuais de console.log por assert.equal.
nodeVersões do Stack: Esta página foi escrita para Node.js 24.18.0 (Active LTS), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 e NestJS 11.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026