GithubHelp home page GithubHelp logo

samuelrms / initial-setup-node-ts Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 78 KB

Setup Inicial de NodeJS com Typescript

Shell 19.91% JavaScript 24.52% TypeScript 55.58%
eslint jest nodejs nodemon prettier typescript husky-hooks lintstaged

initial-setup-node-ts's Introduction

Setup NodeJs com TS

O projeto initial-setup-node-ts é um template inicial para criação de projetos Node.js com TypeScript. Ele inclui configurações de linting, testes com Jest e ambiente de desenvolvimento com Nodemon e TS-Node. O projeto também utiliza o pacote dotenv para gerenciar variáveis de ambiente e express para criação de rotas HTTP.

Stack utilizada

Back-end: Node, Express, Jest, Nodemon, dotEnv e etc...

Variáveis de Ambiente

Para rodar esse projeto, você vai precisar adicionar a seguinte variável de ambiente no seu .env, mas se não quiser o projeto irá rodar por padrão na porta :3030

PORT

Rodando os testes

Para rodar os testes, rode os seguintes comandos

  yarn test

Testes padrões, irá ser executado mesmo que não haja testes


  yarn test:watch

Irá ficar assistindo a aplicação a todo momento e executando os testes sempre que algum arquivo for alterado


  yarn test:staged

Irá realizar teste apenas no arquivo que foi alterado e não em todos os testes da aplicação


  yarn test:push

Executa os testes antes de ser realizado o push da aplicação e gera um relatório de cobertura de código dos testes executados pelo Jest, detalhando a porcentagem de cobertura de código de cada arquivo do projeto (porcentagem indica quais linhas de código foram percorridas pelo teste, e quais linhas não foram)

Flow de commits

Setup estruturado visano do melhor cenário possivel onde apenas é possivel efetuar um comentário ele sendo semantico, ou seja seguindo um padrão de nomenclatura para as mensagens.

Exemplo

  • <tipo>(<escopo>): <descrição>

Sendo o <tipo>(<escopo>) um dos exemplos a seguir

  • feat (Adição de funcionalidade)

  • fix (Correção de defeito).

  • docs (Mudança em documentação)

  • style (Mudança de formatação ou estilo, que não afeta a execução do código)

    • Exemplos: espaço, tabulação, etc.
  • refactor (Mudança na organização do código, que não afeta o comportamento existente)

  • test (Adição ou mudança de um teste)

  • chore (Adição ou mudança em script de build, que não afeta o código de produção)

  • perf (Mudança de código para melhoria de desempenho)

  • ci (Mudança de configuração de integração contínua)

  • build (Mudança em arquivos de build ou em dependências externas)

  • temp (Commit temporário, que não deve ser incluído no CHANGELOG)

  • scope: (Opcional, pode ser qualquer coisa que especifique o escopo da mudança)

    • Exemplos: subpacote, workspace, módulo, componente, página.
  • subject (Breve resumo da mudança, escrito no tempo verbal presente. Começa com letra minúscula e não há ponto final)

Dependencias

Dependências:

  • "dotenv": "^16.0.3" - biblioteca para carregar variáveis de ambiente do arquivo ".env"
  • "express": "^4.18.2" - framework para construção de aplicativos web em Node.js

Dev-dependencies:

  • "@types/express": "^4.17.17" - tipos para o Express
  • "@types/jest": "^29.5.1" - tipos para o Jest
  • "@types/node": "^20.1.1" - tipos para o Node.js
  • "@typescript-eslint/eslint-plugin": "^5.59.5" - plugin do ESLint para TypeScript
  • "@typescript-eslint/parser": "^5.59.5" - parser do ESLint para TypeScript
  • "eslint": "^8.40.0" - ferramenta para análise de código
  • "eslint-config-prettier": "^8.8.0" - configuração do ESLint para funcionar com o Prettier
  • "git-commit-msg-linter": "^5.0.4" - ferramenta para validação das mensagens de commit
  • "husky": "^8.0.3" - ferramenta para automatização de tarefas em Git hooks
  • "jest": "^29.5.0" - framework de testes para JavaScript
  • "lint-staged": "^13.2.2" - ferramenta para automatizar a execução de linters em arquivos com alterações staged
  • "nodemon": "^2.0.22" - ferramenta para reiniciar automaticamente o servidor quando houver alterações no código
  • "prettier": "^2.8.8" - ferramenta para formatação de código
  • "ts-jest": "^29.1.0" - plugin do Jest para TypeScript
  • "ts-node": "^10.9.1" - ferramenta para executar arquivos TypeScript
  • "tsc-alias": "^1.8.6" - ferramenta para criação de aliases em caminhos de arquivos TypeScript
  • "tsconfig-paths": "^4.2.0" - ferramenta para resolução de caminhos de arquivos TypeScript
  • "typescript": "^5.0.4" - compilador TypeScript

Autor

Logo

initial-setup-node-ts's People

Contributors

samuelrms avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.