Node

Microserviço para Autenticação e Gerenciamento de Usuários - REST API

Configuração do ambiente de desenvolvimento com TypeScript e Node.js

Node.js

Comando para inicializar app com Node.js, cria o arquivo package.json

                                npm init
                            
Alterar o arquivo package.json

                                "main": "./dist/index.js",
                                "scripts": {
                                    "start": "node ./"
                                },
                            
Ao configurar apenas com ./ ele olha para o main. Criar o diretório root src na raiz do projeto.

                                mkdir src
                            

TypeScript

Instalar o typeScript globalmente.

                                npm install -g typescript
                            
Configurar o typeScript, cria o arquivo tsconfig.json

                                tsc --init
                            
Alterar o arquivo de configuração tsconfig.json

                                {
                                    "compilerOptions": {
                                        "target": "es2019", 
                                        "module": "commonjs", 
                                        "moduleResolution": "node",
                                        "rootDir": "src",  /* Diretório principal = Conjunto de scripts/files */
                                        "typeRoots": [     
                                            "./src/@types",
                                            "./node_modules/@types"
                                        ],
                                        "outDir": "./dist",  /* Diretório de saída = build, production */
                                        "removeComments": true, /* Remover comentários durante a build */
                                        "esModuleInterop": true, 
                                        "forceConsistentCasingInFileNames": true,
                                        "strict": true, /* Sempre realizar as validações */
                                        "skipLibCheck": true 
                                    }
                                }  
                            
Criar o arquivo principal index.ts dentro do diretório principal ./src, este será o servidor da app.

                                touch.exe src/index.ts
                            
Criar o diretório ./src/@types

                                mkdir src/@types
                            
Criar o diretório dist na raiz do projeto.
TypeScript irá gerar os arquivos de build, os arquivos .js resultantes da transpilação dos arquivos .ts

                                mkdir dist
                            
Instalar os @types do Node.js, biblioteca responsável pela transpilação do TypeScript para JavaScript.

                                npm install --save-dev typescript
                                npm install --save-dev @types/node
                            
Created directory node_modules in project root.
Adicionar script de build no package.json, aponta para o arquivo de configuração tsconfig.json

                                "scripts": {
                                    "build": "tsc -p .",
                                }
                            

Git

Criar arquivo .gitignore na raiz do projeto e configurar os diretórios dist e node_modules.

                                touch.exe .gitignore
                            
OBS: Os diretórios ignorados ficarão com a cor cinza.

Execução em Tempo de Desenvolvimento

Comando para executar build, converter TypeScript para JavaScript e gerar os arquivos de produção.

                                npm run build
                            
Comandos para executar a app.

                                npm start
                                npm run start
                            

Ferramentas Úteis - Automatizar a Execução em Tempo de Desenvolvimento