## Instalar o NVM ``` wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash ``` ## Instalar Node com NVM ``` nvm install --lts nvm use --lts ``` ## Instalar o typescript e o tsx (de forma global) ``` nvm i -g typescript tsx ``` ## Criar o projeto ``` mkdir meu-projeto && cd meu-projeto ``` ## Inicializar projeto Typescript ``` npm init -y ``` ## Configurar typescript ``` tsc --init ``` ## Editar o arquivo tsconfig.json { "compilerOptions": { "target": "ESNext", "module": "NodeNext", "moduleResolution": "NodeNext", "strict": true, "outDir": "dist", "rootDir": "src", "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "jsx": "react-jsx" }, "include": ["src"] } ## Configurar o package.json para executar o ambiente de desenvolvimento Adicione nos scripts do `package.json`: ``` "dev": "tsx watch src/main.ts" ``` ## Adicionar ESLint + Prettier ``` npm install --save-dev eslint prettier eslint-config-prettier eslint-plugin-prettier @typescript-eslint/parser @typescript-eslint/eslint-plugin ``` .eslintrc.json { "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"], "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint", "prettier"], "rules": { "prettier/prettier": "error" } } Adicione nos scripts do `package.json`: package.json ``` "format": "format": "prettier --write \"src/**/*.{ts,tsx}\" ``` ## Criar o build do projeto Adicione nos scripts do `package.json`: ``` "build": "tsc", ``` ## Iniciar o projeto após o build Adicione nos scripts do `package.json`: ``` "start": "node dist/main.js" ```