- Pre-requisitos
- Configurando estrutura
- Configurando EditorConfig, ESlint e Prettier
- VSCode Debug Configuration
- Descrevendo arquitetura do software
- Configurando Docker
- Configurando TypeORM
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:
Além disto é bom ter um editor para trabalhar com o código como:
yarn add express
yarn add typescript @types/express -D
yarn tsc --init
"outDir": "./dist",
"rootDir": "./src",
yarn add ts-node-dev -D
{
...
"scripts": {
"build": "tsc",
"dev:server": "ts-node-dev --inspect --transpile-only --ignore-watch node_modules src/server.ts"
},
...
}
Tutorial do Notion - Imagens também de sua autoria.
Depois de instalada, ao clicar com o botão direito sobre o explorador de arquivos do projeto vamos selecionar a opção Generate .editorconfig
root = true
[*]
indent_style = space
indent_size = 2
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf
yarn add eslint -D
yarn eslint --init
- To check syntax, find problems and enforce code style
- Javascript modules (import/export)
- None of these
- Yes (for TypeScript)
- Node
- Use a popular style guide
- Airbnb
- JSON
- No (já que usamos yarn)
yarn add @typescript-eslint/eslint-plugin@latest eslint-config-airbnb-base@latest eslint-plugin-import@^2.21.2 @typescript-eslint/parser@latest -D
/*.js
node_modules
dist
"plugin:@typescript-eslint/recommended"
"settings": {
"import/resolver": {
"typescript": {}
}
}
"import/extensions": [
"error",
"ignorePackages",
{
"ts": "never"
}
]
{
"env": {
"es2020": true,
"node": true
},
"extends": [
"airbnb-base",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"plugins": [
"@typescript-eslint"
],
"rules": {
"import/extensions": [
"error",
"ignorePackages",
{
"ts": "never"
}
]
},
"settings": {
"import/resolver": {
"typescript": {}
}
}
}
yarn add prettier eslint-config-prettier eslint-plugin-prettier -D
"prettier/@typescript-eslint",
"plugin:prettier/recommended"
"prettier"
"prettier/prettier": "error"
{
...
"extends": [
...
"prettier/@typescript-eslint",
"plugin:prettier/recommended"
],
...
"plugins": [
...
"prettier"
],
"rules": {
...
"prettier/prettier": "error"
},
...
}
module.exports = {
singleQuote: true,
trailingComma: 'all',
arrowParens: 'avoid',
}
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"protocol": "inspector",
"restart": true,
"name": "Debug",
"skipFiles": [
"<node_internals>/**"
],
"outFiles": [
"${workspaceFolder}/**/*.js"
]
}
]
}
yarn add pg