DevTools

Cheatsheet Vite

Build tool ultrarrápido para projetos web modernos

Voltar às linguagens
Vite
20 cards encontrados
Categorias:
Versões:

Setup


3 cards
Criar projeto
npm create vite@latest minha-app
npm create vite@latest -- --template react
npm create vite@latest -- --template vue
npm create vite@latest -- --template svelte
cd minha-app && npm install

Inicializar projeto Vite.

Templates disponíveis
vanilla     # JS puro
react       # React
vue         # Vue 3
svelte      # Svelte
solid       # SolidJS
preact, lit, qwik...

Templates com variantes TS.

Estrutura de projeto
index.html    # entry point
src/
  main.js    # JS principal
  App.vue    # componente raiz
public/      # assets estáticos
vite.config.js
package.json

Estrutura padrão.

Configuração


4 cards
vite.config.js
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  server: { port: 3000 },
  base: '/',
})

Configuração básica.

Aliases e resolve
resolve: {
  alias: {
    '@': '/src',
    '~': '/src/components',
  },
}

Atalhos de import.

Variáveis de ambiente
// .env / .env.production
VITE_API_URL=https://api.exemplo.com

// No código:
import.meta.env.VITE_API_URL
import.meta.env.MODE
import.meta.env.PROD // true/false

Env vars com prefixo VITE_.

CSS e pré-processadores
// Suporte nativo a:
// .css, .scss, .sass, .less, .styl
npm i -D sass  # para SASS

css: {
  modules: { localsConvention: 'camelCase' },
  preprocessorOptions: {
    scss: { additionalData: `@import "vars";` }
  }
}

Processamento de CSS.

Plugins


3 cards
Plugins oficiais
@vitejs/plugin-react
@vitejs/plugin-vue
@vitejs/plugin-legacy

plugins: [
  react(),
  legacy({ targets: ['defaults'] }),
]

Plugins da equipa Vite.

Plugins populares
vite-plugin-pwa    # PWA
vite-plugin-svgr   # SVG como componente
vite-plugin-inspect # debug
unplugin-auto-import # auto imports
unplugin-vue-components

Ecossistema de plugins.

Plugin personalizado
function meuPlugin() {
  return {
    name: 'meu-plugin',
    transform(code, id) {
      if (id.endsWith('.special')) {
        return { code: transform(code) }
      }
    },
  }
}

Criar plugin próprio.

Desenvolvimento


3 cards
Dev server
npm run dev   # ou vite

server: {
  port: 3000,
  open: true,
  host: true,  // expor na rede
  https: true,
}

Servidor de desenvolvimento.

Proxy de API
server: {
  proxy: {
    '/api': {
      target: 'http://localhost:8080',
      changeOrigin: true,
      rewrite: (p) => p.replace(/^\/api/, ''),
    },
  }
}

Proxy para backend.

HMR e import.meta
// HMR automático (sem config)
// import.meta.hot para controlo manual:
if (import.meta.hot) {
  import.meta.hot.accept((mod) => {
    console.log('Atualizado!')
  })
}

Hot Module Replacement.

Build


4 cards
Build de produção
npm run build  # ou vite build

build: {
  outDir: 'dist',
  sourcemap: true,
  minify: 'terser',
  target: 'es2020',
}

Gerar build otimizado.

Code splitting
build: {
  rollupOptions: {
    output: {
      manualChunks: {
        vendor: ['react', 'react-dom'],
      },
    },
  }
}

Dividir em chunks.

Preview e análise
npm run preview  # servir dist/

// Análise de bundle:
npm i -D rollup-plugin-visualizer
import { visualizer } from 'rollup-plugin-visualizer'
plugins: [visualizer({ open: true })]

Prever e analisar build.

Library mode
build: {
  lib: {
    entry: 'src/index.js',
    name: 'MinhaLib',
    formats: ['es', 'cjs', 'umd'],
  },
  rollupOptions: {
    external: ['react'],
  }
}

Build como biblioteca.

CLI


3 cards
Comandos
npx vite           # dev server
npx vite build     # build produção
npx vite preview   # servir dist
npx vite optimize  # pré-bundling

Comandos principais.

Flags
--port 3000
--host 0.0.0.0
--open
--mode staging
--config vite.custom.js
--debug

Opções de CLI.

Vite vs Webpack
# Vantagens Vite:
# • Dev server instantâneo (ESM)
# • HMR ultrarrápido
# • Build com Rollup (otimizado)
# • Config mínima
# • Suporte TS/JSX nativo

Porquê escolher Vite.