Deno (/ˈdiːnoʊ/, pronunciado dee-no) é um runtime de open source para JavaScript, TypeScript e WebAssembly, com padrões seguros e uma ótima experiência de desenvolvimento. Esta página leva você do zero a um projeto em execução e testado em poucos minutos.

Por que o Deno?

  • Funciona com seus projetos Node.js existentes. Adicione o Deno a um repositório com package.json e node_modules e ele simplesmente funciona; misture imports npm: com ES modules nativos conforme você migra.
  • Sistema de módulos moderno. ES modules com imports por URL, JSR para pacotes tipados e workspaces.
  • TypeScript-first. Execute arquivos .ts diretamente. Sem tsc, sem etapa de build, sem configuração.
  • Seguro por padrão. O código roda em um sandbox sem acesso a arquivos, rede ou variáveis de ambiente até que você conceda permissão.
  • Um toolchain completo, sem encanamento. Formatter integrado, linter, test runner, benchmarking e muito mais. Sem devDependencies para configurar.

Instalar o Deno

Instale o runtime com um comando:

curl -fsSL https://deno.land/install.sh | sh
irm https://deno.land/install.ps1 | iex

Verifique a instalação:

deno --version

Consulte Instalação para gerenciadores de pacotes, Docker e outras opções.

Criar um projeto

Crie um novo projeto com deno init:

deno init my_project

Isso cria um projeto pequeno e pronto para executar:

my_project
├── deno.json      # configuração do projeto: tasks, imports, lint/fmt
├── main.ts        # um servidor HTTP simples com Deno.serve
└── main_test.ts   # seus testes

deno.json é onde ficam suas tasks, dependências e configurações de ferramentas. Pense em package.json mais as configurações das suas ferramentas, em um único arquivo.

Executar

$ cd my_project
$ deno -N main.ts
Listening on http://localhost:8000/

Observe o -N (abreviação de --allow-net). O Deno é seguro por padrão: o código não pode acessar rede, sistema de arquivos ou ambiente até que você conceda permissão. Abra a URL para ver a resposta.

main.ts é TypeScript e foi executado diretamente: sem tsc, sem etapa de build. Também é construído com o padrão web Deno.serve e Request/Response, então o que você aprende aqui é a plataforma, não um framework.

Testar

O projeto já vem com testes. Execute-os com deno test. O test runner é integrado, então não há nada para instalar:

$ deno test
running 2 tests from ./main_test.ts
returns html on / ... ok (12ms)
returns json on /api ... ok (0ms)

ok | 2 passed | 0 failed (15ms)

Adicionar uma dependência

Instale pacotes do npm ou do JSR com deno install:

deno install express            # qualquer pacote npm, como npm install
deno install jsr:@std/assert    # a biblioteca padrão do Deno, no JSR

Depois importe e use:

import { assertEquals } from "@std/assert";

assertEquals(1 + 1, 2);

Usar o toolchain integrado

Formatação, lint e muito mais vêm com o runtime, sem configuração:

deno fmt     # formata seu código
deno lint    # detecta problemas
deno task    # executa scripts definidos em deno.json

Próximos passos