O Deno tem um file watcher integrado, então você não precisa de nodemon nem de
nenhuma outra ferramenta externa para recarregar seu programa enquanto edita.
Esta página cobre o que é observado, como excluir caminhos e hot module
replacement.
Watch mode
Você pode fornecer a flag --watch para deno run, deno test e deno fmt
para ativar o file watcher integrado. O watcher habilita o recarregamento
automático da sua aplicação sempre que mudanças são detectadas nos arquivos de
código-fonte. Isso é especialmente útil durante o desenvolvimento, pois permite
ver os efeitos das suas mudanças imediatamente sem reiniciar manualmente a
aplicação.
deno run --watch main.ts
deno test --watch
deno fmt --watchOs arquivos observados dependem do subcomando usado:
- para
deno runedeno test, o entrypoint e todos os arquivos locais que o entrypoint importa estaticamente serão observados. - para
deno fmt, todos os arquivos e diretórios locais especificados como argumentos de linha de comando (ou o diretório de trabalho, se nenhum arquivo ou diretório específico for passado) são observados.
Você pode excluir caminhos ou padrões da observação fornecendo a flag
--watch-exclude. A sintaxe é --watch-exclude=path1,path2. Por exemplo:
deno run --watch --watch-exclude=file1.ts,file2.ts main.tsIsso excluirá file1.ts e file2.ts da observação.
Para excluir um padrão, lembre-se de colocá-lo entre aspas para impedir que seu shell expanda o glob:
deno run --watch --watch-exclude='*.js' main.tsHot module replacement
deno run também oferece suporte à flag --watch-hmr, que substitui a quente
os módulos alterados no processo em execução em vez de reiniciá-lo. Isso
preserva o estado da sua aplicação entre edições. Se a substituição a quente
falhar, o processo volta para uma reinicialização completa.
deno run --watch-hmr main.tsEditores com atomic save
Alguns editores usam "atomic save" (também chamado de safe write), em que o
editor grava suas alterações em um arquivo temporário e depois o renomeia sobre
o original a cada salvamento. No Linux, isso substitui o arquivo por um novo no
disco, o que pode desconectar o file watcher usado por --watch-hmr depois da
primeira mudança. O sintoma é que a substituição a quente funciona uma vez e
depois para de detectar novas edições nesse módulo.
Se você encontrar isso, desative atomic save no seu editor:
- Helix: defina
[editor] atomic-save = false(ele vem ativado por padrão). - Neovim/Vim: defina
:set backupcopy=yes.
--watch simples não é afetado, porque cada mudança aciona uma reinicialização
completa que restabelece os watchers.