O Deno lê dois arquivos de configuração: o package.json do Node e seu próprio
deno.json. Ambos são de primeira classe e ambos são opcionais, então o Deno
funciona com qualquer um deles ou com os dois juntos. A regra geral:
- Use um
package.jsonpara dependências e scripts. O Deno o lê diretamente, então a maioria dos projetos Node.js roda sem mudanças e você não precisa de umdeno.json. - Adicione um
deno.jsonquando quiser configurar as próprias ferramentas do Deno, como o formatter, linter, compilador TypeScript ou tasks.
package.json
O Deno tem suporte de primeira classe a package.json. Aponte o Deno para um
projeto Node.js existente e ele resolve as mesmas dependências npm do
package.json e executa os scripts do projeto com
deno task, sem deno.json e sem etapa de
conversão:
deno install # install the dependencies from package.json
deno task <script> # run a script defined in package.jsonUm package.json configura as dependências e scripts do seu projeto, mas não
configura o próprio Deno. Configurações específicas do Deno, como formatter,
linter, opções do compilador TypeScript e comportamento do lockfile, ficam
apenas no deno.json. Quando os dois arquivos estão presentes, o Deno lê
dependências de cada um e usa sua própria configuração a partir do deno.json.
É isso que permite adotar o Deno de forma incremental: continue rodando um app
no Node enquanto usa o Deno como um gerenciador de pacotes drop-in mais rápido,
execute seus scripts existentes com deno task e adicione um deno.json para o
toolchain do Deno quando estiver pronto. O guia
Migrar do Node.js percorre cada etapa, e
compatibilidade com Node no Deno cobre como o
runtime mapeia APIs e resolução de módulos do Node.
deno.json
deno.json é onde você configura o próprio Deno: tasks, dependências e
ferramentas como o compilador TypeScript, linter e formatter. Ele é opcional; um
arquivo mínimo se parece com isto:
{
"tasks": {
"dev": "deno run --watch main.ts"
},
"imports": {
"@std/assert": "jsr:@std/assert@^1"
},
"fmt": {
"lineWidth": 100
}
}Ele aceita extensões .json e
.jsonc,
então com deno.jsonc você pode adicionar comentários e vírgulas finais.
O Deno detecta automaticamente um arquivo deno.json ou deno.jsonc no seu
diretório de trabalho atual ou em qualquer diretório pai, o que faz as
configurações de um projeto se aplicarem a todos os arquivos abaixo dele. Use a
flag --config para apontar para outro arquivo. Em um monorepo, um deno.json
raiz pode definir um workspace cujos
membros têm seu próprio deno.json.
O que você pode configurar
Um arquivo deno.json configura o toolchain do Deno e seu projeto. Cada campo é
documentado na
referência do arquivo de configuração (deno.json),
incluindo:
- Dependências e import maps
- Tasks
- Linting e formatação
- Lockfile e o diretório node_modules
- Opções do compilador TypeScript
- Flags de recursos instáveis
includeeexclude- Exports
- Permissões
- Opções de compile
- Idade mínima de dependência
Veja a referência para um exemplo completo de arquivo deno.json e o JSON schema para autocomplete no editor.