Cheatsheet Vite
Build tool ultrarrápido para projetos web modernos
Vite
20
tarjetas encontradas
Categorías:
Versiones:
Setup
Crear proyecto
npm create vite@latest my-app
npm create vite@latest -- --template react
npm create vite@latest -- --template vue
npm create vite@latest -- --template svelte
cd my-app && npm install
Inicializar proyecto Vite.
Templates disponibles
vanilla # JS puro
react # React
vue # Vue 3
svelte # Svelte
solid # SolidJS
preact, lit, qwik...
Templates con variantes TS.
Estructura de proyecto
index.html # entry point
src/
main.js # JS principal
App.vue # componente raíz
public/ # assets estáticos
vite.config.js
package.json
Estructura estándar.
Configuração
vite.config.js
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
export default defineConfig({
plugins: [react()],
server: { port: 3000 },
base: '/',
})Configuración básica.
Aliases y resolve
resolve: {
alias: {
'@': '/src',
'~': '/src/components',
},
}Atajos de import.
Variables de entorno
// .env / .env.production
VITE_API_URL=https://api.example.com
// En el código:
import.meta.env.VITE_API_URL
import.meta.env.MODE
import.meta.env.PROD // true/false
Env vars con prefijo VITE_.
CSS y preprocesadores
// Soporte nativo para:
// .css, .scss, .sass, .less, .styl
npm i -D sass # para SASS
css: {
modules: { localsConvention: 'camelCase' },
preprocessorOptions: {
scss: { additionalData: `@import "vars";` }
}
}
Procesamiento de CSS.
Plugins
Plugins oficiales
@vitejs/plugin-react
@vitejs/plugin-vue
@vitejs/plugin-legacy
plugins: [
react(),
legacy({ targets: ['defaults'] }),
]
Plugins del equipo de 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
Ecosistema de plugins.
Plugin personalizado
function myPlugin() {
return {
name: 'my-plugin',
transform(code, id) {
if (id.endsWith('.special')) {
return { code: transform(code) }
}
},
}
}Crear plugin propio.
Desenvolvimento
Dev server
npm run dev # o vite
server: {
port: 3000,
open: true,
host: true, // exponer en la red
https: true,
}
Servidor de desarrollo.
Proxy de API
server: {
proxy: {
'/api': {
target: 'http://localhost:8080',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/api/, ''),
},
}
}Proxy para el backend.
HMR e import.meta
// HMR automático (sin config)
// import.meta.hot para control manual:
if (import.meta.hot) {
import.meta.hot.accept((mod) => {
console.log('¡Actualizado!')
})
}
Hot Module Replacement.
Build
Build de producción
npm run build # o vite build
build: {
outDir: 'dist',
sourcemap: true,
minify: 'terser',
target: 'es2020',
}
Generar build optimizado.
Code splitting
build: {
rollupOptions: {
output: {
manualChunks: {
vendor: ['react', 'react-dom'],
},
},
}
}Dividir en chunks.
Preview y análisis
npm run preview # servir dist/
// Análisis de bundle:
npm i -D rollup-plugin-visualizer
import { visualizer } from 'rollup-plugin-visualizer'
plugins: [visualizer({ open: true })]
Previsualizar y analizar el build.
Library mode
build: {
lib: {
entry: 'src/index.js',
name: 'MyLib',
formats: ['es', 'cjs', 'umd'],
},
rollupOptions: {
external: ['react'],
}
}Build como biblioteca.
CLI
Comandos
npx vite # dev server
npx vite build # build de producción
npx vite preview # servir dist
npx vite optimize # pre-bundling
Comandos principales.
Flags
--port 3000
--host 0.0.0.0
--open
--mode staging
--config vite.custom.js
--debug
Opciones de CLI.
Vite vs Webpack
# Ventajas de Vite:
# • Dev server instantáneo (ESM)
# • HMR ultrarrápido
# • Build con Rollup (optimizado)
# • Config mínima
# • Soporte TS/JSX nativo
Por qué elegir Vite.