
Olá pessoal, hoje vamos falar sobre uma funcionalidade nativa do Node.js que simplifica muito o fluxo de desenvolvimento: o modo --watch.
Antigamente, para que nossa aplicação reiniciasse automaticamente sempre que alterássemos um arquivo, precisávamos recorrer a ferramentas de terceiros bastante populares, como o Nodemon ou o pm2 (em ambiente de desenvolvimento). Porém, a partir das versões mais recentes do Node.js, essa capacidade já vem integrada, eliminando a necessidade de dependências extras para essa finalidade.
O que é o modo Watch?
O modo watch é uma funcionalidade que observa seus arquivos e reinicia o processo do Node.js sempre que uma alteração é detectada. Isso é essencial durante o desenvolvimento, pois permite que você veja as mudanças refletidas em tempo real sem precisar parar e iniciar o servidor manualmente a todo momento.
Essa funcionalidade foi introduzida como experimental na versão 18.11.0 e tornou-se estável na versão 20.
Como utilizar
Para utilizar, basta adicionar a flag --watch ao executar seu script:
node --watch index.js
Se você estiver utilizando um arquivo de configuração como o package.json, pode adicionar ao seu script de dev:
"scripts": {
"dev": "node --watch index.js"
}
Exemplo Prático
Vamos criar um servidor HTTP simples para testar.
Crie um arquivo chamado server.js:
const http = require('node:http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
res.end('Olá, Node.js Watch!');
});
server.listen(3000, () => {
console.log('Servidor rodando em http://localhost:3000');
});
Execute o servidor com o modo watch:
node --watch server.js
Agora, altere a mensagem 'Olá, Node.js Watch!' para 'Olá, Mundo Atualizado!' e salve o arquivo.
Você verá no terminal que o processo foi reiniciado automaticamente:
Restarting 'server.js'
Servidor rodando em http://localhost:3000

Ao acessar http://localhost:3000, a nova mensagem já estará disponível.

Observando diretórios específicos
Por padrão, o --watch observa o arquivo de entrada e suas dependências. Se você precisar observar arquivos ou diretórios específicos que não são importados diretamente, pode usar a flag --watch-path:
node --watch --watch-path=./src --watch-path=./config server.js
Conclusão
A flag --watch é uma adição muito bem-vinda ao ecossistema do Node.js, reduzindo a complexidade dos projetos e a quantidade de dependências de desenvolvimento (devDependencies). Se você já está usando o Node.js 18.11+ ou superior, vale a pena experimentar e aposentar o nodemon em seus novos projetos.
Valeu pessoal 😎✌️!
Referências
NODE.JS. Documentation: Command-line options. Disponível em: https://nodejs.org/api/cli.html#–watch.