Ambientação
- Inicio do projeto criando a pasta do projeto e rodando o
yarn init -y
- Instalação do Commit Linter rodando o comando
yarn add git-commit-msg-linter -D
- Instalação do Typescript e tipagem do Node.js rodando
yarn add typescript @types/node -D
- Configuração do arquivo
tsconfig.json
// tsconfig.json{"compilerOptions": {"target": "es6","lib": ["dom","dom.iterable","esnext"],"esModuleInterop": true,"module": "esnext","moduleResolution": "node","jsx": "react","rootDir": "src","baseUrl": "src","allowJs": true,"skipLibCheck": true,"allowSyntheticDefaultImports": true,"forceConsistentCasingInFileNames": true,"resolveJsonModule": true,"isolatedModules": false,"noEmit": true},"include": ["src"],"exclude": ["src/main/test/cypress"]}
Instalação do ESLint rodando o comando
yarn add eslint eslint-config-standard-with-typescript@11 eslint-plugin-import eslint-plugin-promise eslint-plugin-standard @typescript-eslint/eslint-plugin eslint-plugin-node -D
Criação do arquivo
.eslintrc.json
// .eslintrc.json{"settings": {"react": {"version": "detect"}},"extends": ["standard-with-typescript","plugin:react/recommended","plugin:cypress/recommended"],"env": {"cypress/globals": true},"plugins": ["react","cypress"],"parserOptions": {"project": "./tsconfig.json"},"rules": {"@typescript-eslint/consistent-type-definitions": "off","@typescript-eslint/strict-boolean-expressions": "off","@typescript-eslint/no-floating-promises": "off","@typescript-eslint/comma-spacing": "off","@typescript-eslint/return-await": "off","@typescript-eslint/no-namespace": "off","no-redeclare": "off","import/export": "off","react/jsx-uses-react": "error","react/jsx-uses-vars": "error"}}
Instalação das dependências lint-staged husky rodando o comando
yarn add lint-staged husky -D
Arquivo de configurações
.lintstagedrc.json
// .lintstagedrc.json{"*.{ts,tsx}": ["eslint 'src/**' --fix"]}
- Arquivo de configurações
.huskyrc.json
// .huskyrc.json{"hooks": {"pre-commit": "lint-staged"}}
Instalação dos arquivos necessários para funcionamento do Jest rodando o comando
yarn add jest @types/jest ts-jest -D
Configuração do arquivo
jest.config.js
// jest.config.jsmodule.exports = {roots: ["<rootDir>/src"],collectCoverageFrom: ["<rootDir>/src/**/*.{ts,tsx}"],coverageDirectory: "coverage",testEnvironment: "node",transform: {".+\\.ts$": "ts-jest",},};
- Configurações adicionais:
// package.json (script de test)"scripts": {"test": "jest"},
# Arquivo .eslintignorenode_modulescoverage