Inicialização e Configuração de Projetos Vue 3 com TypeScript e Vite

Estruturação Inicial do Projeto

Para iniciar um novo projeto utilizando o ecossistema moderno do Vue, o Vite oferece uma experiência de desenvolvimento extremamente rápida. Abaixo, detalhamos o processo de criação e configuração de uma aplicação Vue 3 com suporte a TypeScript.

1. Geração do Template Base

Utilize o gerenciador de pacotes para criar a estrutura inicial do projeto, selecionando o template oficial que combina Vue e TypeScript:

npm create vite@latest frontend-application -- --template vue-ts

2. Inicialização do Controle de Versão

É fundamental integrar o repositório local ao sistema de controle de versão imediatamente após a criação:

cd frontend-application
git init
git add .
git commit -m "chore: initial project scaffolding"
git branch -M main
git remote add origin <SEU_REPOSITORIO_GIT>
git push -u origin main

3. Instalação das Dependências Essenciais

Adicione as bibliotecas necessárias para o roteamento, gerenciamento de estado, pré-processamento de estilos e tipagem do Node:

# Dependências de desenvolvimento e tipagem
npm install -D @types/node sass unplugin-vue-components

# Dependências de produção
npm install pinia vue-router

Configuração do Bundler e do Compilador

Ajustar o Vite e o TypeScript garante que o projeto reconheça aliases de caminho e processe estilos corretamente.

1. Ajustes no vite.config.ts

Substitua o conteúdo do arquivo de configuração do Vite para incluir resolução de caminhos, proxy de API e importação automática de componentes:

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { resolve } from 'path';
import Components from 'unplugin-vue-components/vite';
import { NutUiResolver } from 'unplugin-vue-components/resolvers';

export default defineConfig({
  plugins: [
    vue(),
    Components({
      resolvers: [NutUiResolver()],
    }),
  ],
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src'),
    },
  },
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@use "@/assets/styles/variables" as *;`,
      },
    },
  },
  server: {
    port: 3000,
    proxy: {
      '/v1': {
        target: 'https://backend.example.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/v1/, ''),
      },
    },
  },
  build: {
    outDir: 'dist',
    sourcemap: process.env.NODE_ENV !== 'production',
  },
});

2. Mapeamento de Caminhos no tsconfig.json

Para que o editor e o compilador TypeScript entendam o alias @, atualize as opções do compilador:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"]
    }
  }
}

Padronização de Código e Git Hooks

Para manter a qualidade do código e a consistência das mensagens de commmit, configuraremos ferramentas de linting e ganchos do Git. Certifique-se de que o repositório Git já foi inicializado antes de prosseguir.

1. Instalação das Ferramentas de Qualidade

Adicione o ESLint, Prettier, Husky e Commitlint como dependências de desenvolvimento:

npm install -D eslint prettier husky lint-staged @commitlint/cli @commitlint/config-conventional
npx husky install

2. Configuração do ESLint

Crie ou atualize o arquivo .eslintrc.json na raiz do projeto com as regras de formatação e análise estática:

{
  "root": true,
  "env": {
    "browser": true,
    "node": true,
    "es2022": true
  },
  "extends": [
    "plugin:vue/vue3-recommended",
    "eslint:recommended",
    "@vue/typescript/recommended",
    "prettier"
  ],
  "parserOptions": {
    "ecmaVersion": 2022
  },
  "rules": {
    "vue/no-multiple-template-root": "off",
    "@typescript-eslint/no-explicit-any": "warn"
  }
}

3. Configuração do Commitlint

Crie o arquivo commitlint.config.js para impor o padrão Conventional Commits:

module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [
      2,
      'always',
      ['build', 'chore', 'ci', 'docs', 'feat', 'fix', 'perf', 'refactor', 'revert', 'style', 'test']
    ]
  }
};

4. Registro dos Hooks do Husky

Configure os ganchos de pre-commit para formatação automática e commit-msg para validação da mensagem:

npx husky add .husky/pre-commit "npx lint-staged"
npx husky add .husky/commit-msg "npx --no -- commitlint --edit $1"

5. Definição do Lint-Staged

Adicione a configuração do lint-staged no seu package.json para garantir que apenas os arquivos modificados sejam verificados antes do commit:

"lint-staged": {
  "*.{js,ts,vue}": [
    "eslint --fix",
    "prettier --write"
  ],
  "*.{css,scss,html,md}": [
    "prettier --write"
  ]
}

Tags: vue3 TypeScript Vite eslint husky

Publicado em 8-29 07:29