Tabela de Conteúdos
TypeScript
Referências
Instalação
Por se tratar do desenvolvimento de uma API com Express e TS, devemos instalar o TypeScript como dependência do projeto, ou globalmente.
npm i -g typescript # instalação global na máquina
npm i -D typescript # instalação como dependência de desenvolvimento
Requisitos
@types/node
O primeiro requisito que precisamos para começar a desenvolver aplicações Express com TypeScript é a tipagem do Node.js, essa que, por padrão, não é integrada a ferramenta.
npm i -D @types/node
Express + @types
O segundo requisito é o Express em si juntamente com sua tipagem, que assim como a do Node.js não vem junto do pacote principal, sendo necessário instalá-la manualmente.
npm i express
npm i -D @types/express
ts-node-dev
Essa é uma ferramente para desenvolvimento que realiza a compilação e inicialização do servidor a cada alteração realizada nos arquivos, aumentando a produtividade. Seu funcionamento é similar ao nodemon
, porém além de reiniciar o servidor automaticamente, também compila os arquivos.
npm i -D ts-node-dev # é uma dependência opcional, porém facilita MUITO o desenvolvimento
Scripts
O que são?
São comandos definidos por nós para a execução de determinada ação, a inicialização de um servidor de desenvolvimento, ou a execução de testes, por exemplo.
Scripts recomendados
Ao desenvolver uma aplicação Express com TS, podemos definir alguns scripts para facilitar o desenvolvimento.
dev
O script "dev"
é comumente responsável por iniciar um servidor de desenvolvimento, sendo que normalmente esse servidor possui hot reload, ou seja, sempre que alterarmos nosso código, o servidor será reiniciado automaticamente para refletir tal mudança.
// package.json
{
"dev": "ts-node-dev --inspect --transpile-only --ignore node_modules --respawn src/server.ts",
}
test
O script test
, como o nome da a entender, é responsável pela execução dos testes da aplicação, sendo que o comando utilizado nesse script irá alterar dependendo da ferramenta utilizada, no exemplo abaixo o mocha
é o framework de testes.
// package.json
{
"test": "mocha ./tests/**/*$NAME*.test.js --exit"
}
Caso prefira escrever os testes em TypeScript também, o seguinte script pode ser utilizado:
// package.json
{
"test": "mocha -r ts-node/register/transpile-only __tests__/**/*.spec.ts",
}
start
O script start
por padrão contém todos os comandos necessários para iniciar a aplicação em ambiente de produção.
// package.json
{
"start": "tsc && node dist/server.js" // irá compilar e depois inicializar o servidor a partir do arquivo compilado
}
build
E por fim o script build
é responsável por "construir" nossa aplicação, ele deve receber comandos responsáveis por tal ação. No caso, como estamos focando em uma aplicação Express simples com TS, o nosso processo de build será somente compilar o código, mas em aplicações mais complexas, que utilizem webpack por exemplo, os comandos seriam outros.
// package.json
{
"build": "tsc"
}
Resumo
Instalação de dependências
npm i express
npm i -D typescript @types/node @types/express ts-node-dev
npm i -D mocha chai chai-http sinon # dependências opcionais* para testes
Definição de scripts
{
"scripts": {
"start": "npm run build && node dist/server.js",
"dev": "ts-node-dev --inspect --transpile-only --ignore node_modules --respawn src/server.ts",
"test": "mocha ./tests/**/*$NAME*.test.js --exit",
"build": "tsc"
}
}
Top comments (2)
Parabéns Gabriel! ficou muito top
Valeu Elton!!