DevPath · Aprenda a programar ESPTEN

Node.js, npm e testes

Qualidade e empacotamento

Ferramentas que cuidam do seu código

À medida que um projeto cresce, escrever código "na mão" não basta: você precisa de ferramentas que detectem erros, unifiquem o estilo e preparem o código para produção. Vejamos as três famílias principais.

Linters: ESLint

Um linter analisa seu código sem executá-lo e avisa sobre problemas: variáveis sem uso, comparações perigosas (== em vez de ===), erros potenciais e violações das regras de estilo da equipe. O mais usado em JavaScript é o ESLint.

npm install --save-dev eslint
npx eslint src/        # analisa a pasta src
npx eslint src/ --fix  # corrige automaticamente o que puder

O linter detecta coisas como esta antes que elas quebrem em produção:

let total = 5;      // 'total' nunca é usado  -> aviso do linter
if (x = 3) { ... }  // atribuição em vez de comparação?  -> aviso

Formatters: Prettier

Um formatter cuida apenas da aparência do código: indentação, aspas, vírgulas finais, comprimento de linha... Ele não busca erros; reescreve o código com um formato consistente. O padrão é o Prettier.

npm install --save-dev prettier
npx prettier --write .   # reformata todos os arquivos

A diferença chave: o ESLint cuida da qualidade (possíveis bugs), o Prettier do formato (estética). Eles são usados juntos e eliminam discussões sobre estilo nas equipes.

Bundlers: Vite, esbuild, webpack

Seu código-fonte está espalhado em muitos módulos (import/export) e talvez use sintaxe moderna que alguns navegadores não entendem. Um bundler (empacotador) pega todos esses arquivos e:

Por isso empacota-se para produção: o navegador baixa menos arquivos e menores, então o site carrega mais rápido. As ferramentas mais usadas são Vite e esbuild (modernas e muito rápidas) e webpack (o clássico).

npm run build   # normalmente dispara o bundler e gera a pasta dist/

Scripts do npm: a cola

Todas essas ferramentas são orquestradas com os scripts do package.json. Em vez de lembrar comandos longos, você os nomeia:

{
  "scripts": {
    "lint": "eslint src/",
    "format": "prettier --write .",
    "build": "vite build",
    "test": "vitest"
  }
}

E você os executa com npm run lint, npm run build, etc. Assim qualquer pessoa da equipe usa exatamente o mesmo fluxo com um comando curto e fácil de lembrar.

Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← Controle de versão com GitTestes assíncronos e dublês de teste (mocks) →