Este material tem por finalidade atingir dois objetivos bem simples: tornar clara as vantagens de se utilizar o conjunto de ferramentas citadas no título deste material, bem como demonstrar esse uso na prática. Então sem rodeios vamos ao que interessa.
📚 Livros
Em meu repositório no GitHub você encontrará link para download de alguns livros publicados por mim, bem como poderá acompanhar o desenvolvimento das obras mais recentes, tais como o livro de Node.js para iniciantes. Acesse: https://github.com/fabiojaniolima/livros
🔗 Sugestão de leitura
Os posts abaixo representam tão somente sugestões/recomendações de leitura, não devem ser tidos como pré-requisitos para a leitura ou execução das práticas contidas aqui neste material.
- Introdução ao Node.js (Single-Thread, Event-Loop e mercado)
- NVM — Gerencie múltiplas instalações do Node.js
- Node.js + Express + ES6 + ESLint + Prettier + Sucrase de forma simples e rápida
- Node.js: web scraping com Puppeteer
- EditorConfig — Padronizando características essenciais
Dica: recomendo o uso do ESLint + Prettier + EditorConfig em todo e qualquer projeto, afinal de contas é uma boa prática manter aspectos de consistência.
❗️Pré-requisitos
- Node.js
- NPM ou Yarn
- VSCode*
Ao longo deste post irei utilizar o Yarn como gerenciador de pacotes, sinta-se livre para utilizar o NPM se assim preferir. Já como editor de código, utilizarei o VSCode, porém, você é livre para utilizar o sabor de editor que preferir.
📦 Pacotes utilizados
- typescript
- ts-node-dev
- supertest
- rimraf
- eslint
- prettier
- jest
- dotenv
- cors
- express
Note que estou utilizando ESLint no lugar do TSLint. Isso ocorre pois atualmente o ESLint tem suporte pleno as features do TypeScript, sem falar que a própria equipe de desenvolvimento do TSLint tem incentivado essa migração e juntado esforços entorno do ESLint.
🧑💻 Mãos a obra
Para os passos abaixo estou considerando que você já inicializou um diretório como projeto Node. Exemplo:
yarn init -y
EditorConfig antes de tudo
Esse é um daqueles plugins independente de tecnologia, ou seja, utilizo em todo e qualquer projeto que vou fazer. Veja minha configuração genérica:
root = true[*]
indent_style = space
indent_size = 2
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
Para saber mais leia meu artigo: EditorConfig — Padronizando características essenciais
Configurações iniciais
Vamos começar instalando nossas primeiras dependências de desenvolvimento:
yarn add typescript ts-node-dev rimraf @types/node -D
typescript
: instala o TypeScript e a command line tscts-node-dev
: servidor web de desenvolvimento para TypeScriptrimraf
: utilizaremos este modulo como utilitário para excluir builds antigas de forma automática@types/node
: definição de tipos para o conjunto nativo de APIs/módulos do NodeJS
Execute a instrução abaixo para gerar o tsconfig.json
(arquivo de definições do TypeScript):
yarn tsc --init --outDir "build" --rootDir "src"
A instrução acima gera o arquivo de configurações com duas referências passadas por nós:
outDir
: diretório onde a build do projeto será geradarootDir
: diretório raiz onde fica nosso código TypeScript
ESLint e Prettier
Para manter uma boa sintaxe e formatação é necessário utilizar estes dois camaradas em conjunto. Para isso instale executando:
yarn add eslint prettier eslint-config-prettier eslint-plugin-prettier eslint-plugin-simple-import-sort -D
eslint
: faz o lint do código, ou seja, verifica erros de sintaxe, formatação e outros aspectosprettier
: tem foco total na formatação e padronização do códigoeslint-config-prettier
: desativa regras do ESLint que entram em conflito com o Prettiereslint-plugin-prettier
: permite rodar o Prettier como uma regra do ESLinteslint-plugin-simple-import-sort
: organiza nossos imports em ordem alfabetica
A instrução abaixo irá gerar o arquivo de definições .eslintrc.*
:
yarn eslint --init
Reproduza as respostas conforme abaixo:
- Vamos configurar o ESLint com foco na sintaxe e detecção de problema:
Continue lendo em: https://link.medium.com/CRZ9TKZI08