En esta guía se explica cómo crear un proyecto utilizando Vue 3 junto a una variedad de herramientas y librerías modernas que optimizan el entorno de desarrollo. Se hace uso de Vite para el empaquetado del proyecto, TypeScript para garantizar un tipado estático y mayor robustez en el código, Tailwind CSS para un diseño eficiente y escalable, Pinia como herramienta de gestión de estado, Vue Router para la navegación en la aplicación y la combinación de ESLint y Prettier para asegurar un estilo de código estandarizado. Esta guía paso a paso está diseñada para ofrecer una visión integral y práctica de cada uno de los pasos necesarios.
El primer paso consiste en establecer la base de tu proyecto utilizando Vite, un empaquetador moderno que permite una configuración rápida y altamente optimizada, especialmente para Vue 3. Utilizaremos una plantilla preconfigurada con TypeScript para asegurarnos de que contamos con todas las ventajas del tipado estático.
Abre tu terminal y ejecuta el siguiente comando para crear un nuevo proyecto. Asegúrate de reemplazar "mi-proyecto-vue" por el nombre deseado para tu aplicación:
# Crear un proyecto Vue 3 con Vite y TypeScript
npm create vite@latest mi-proyecto-vue -- --template vue-ts
Una vez creado, muévete al directorio de tu proyecto mediante:
cd mi-proyecto-vue
Ejecuta la instalación de dependencias esenciales:
npm install
Para gestionar la navegación dentro de tu aplicación, se instala Vue Router, mientras que Pinia se encargará de la gestión de estado global. Estos componentes son fundamentales para construir aplicaciones modernas y escalables.
# Instalación de Vue Router y Pinia
npm install vue-router@4 pinia
Después de la instalación, deberás configurar cada uno de estos módulos en tu aplicación. Los archivos de configuración se crearán dentro del directorio src para mantener organizado el proyecto.
Tailwind CSS es un framework de diseño que ofrece clases utilitarias para estilizar de forma rápida y flexible. Se integrará mediante la instalación de Tailwind y sus dependencias, así como su configuración a través de un archivo específico.
# Instalación de Tailwind CSS y dependencias
npm install -D tailwindcss postcss autoprefixer
# Creación de la configuración de Tailwind y PostCSS
npx tailwindcss init -p
Ahora, edita el archivo tailwind.config.js para definir las rutas de tu proyecto donde se utilizarán las clases de Tailwind. Deberás configurar el contenido para incluir tus archivos HTML y todos los componentes Vue:
// tailwind.config.js
/<b> @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./index.html",
"./src/</b>/*.{vue,js,ts,jsx,tsx}"
],
theme: {
extend: {},
},
plugins: [],
}
A continuación, en tu hoja de estilos principal (por lo general src/assets/main.css o src/style.css), agrega las directivas de Tailwind:
@tailwind base;
@tailwind components;
@tailwind utilities;
A continuación, se configura Vue Router. Crea el directorio src/router y crea un archivo llamado index.ts en él. Este archivo contendrá la configuración de las rutas.
// src/router/index.ts
import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
const routes = [
{
path: '/',
name: 'home',
component: HomeView
},
// Agrega más rutas conforme a tus necesidades
]
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes
})
export default router
Para la gestión del estado global de la aplicación, se usará Pinia. Crea o edita el archivo src/main.ts para inicializar y configurar Pinia junto a Vue Router.
// src/main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import { createPinia } from 'pinia'
import './assets/main.css' // Importa Tailwind CSS
const app = createApp(App)
app.use(router)
app.use(createPinia())
app.mount('#app')
ESLint y Prettier son herramientas esenciales para mantener la calidad y la coherencia en tu código. ESLint ayuda a identificar y corregir problemas en el código JavaScript/TypeScript, mientras que Prettier se encarga del formateo del código. Aquí, configuraremos ambos para que trabajen conjuntamente en armonía.
npm install -D eslint prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-plugin-vue eslint-config-prettier eslint-plugin-prettier
Crea y configura el archivo .eslintrc.js en la raíz de tu proyecto con el siguiente contenido:
// .eslintrc.js
module.exports = {
root: true,
env: {
browser: true,
node: true,
es2021: true
},
extends: [
'eslint:recommended',
'plugin:vue/vue3-recommended',
'plugin:@typescript-eslint/recommended',
'prettier'
],
parserOptions: {
ecmaVersion: 'latest',
parser: '@typescript-eslint/parser',
sourceType: 'module'
},
plugins: [
'vue',
'@typescript-eslint'
],
rules: {
'vue/multi-word-component-names': 'off',
'prettier/prettier': 'error'
}
}
Luego, crea un archivo .prettierrc en la raíz del proyecto, donde defines las reglas de formateo:
{
"semi": true,
"trailingComma": "es5",
"singleQuote": true,
"printWidth": 100,
"tabWidth": 2
}
Se recomienda agregar scripts en package.json para facilitar la ejecución de estas herramientas:
// package.json (fragmento)
"scripts": {
"dev": "vite",
"build": "vite build",
"serve": "vite preview",
"lint": "eslint --ext .js,.ts,.vue src",
"format": "prettier --write ."
}
Para aprovechar al máximo estas herramientas, se recomienda configurar Visual Studio Code con extensiones como Volar (para Vue), ESLint y Prettier. Al habilitar la función de "format on save" y "code actions", VS Code integrará automáticamente la corrección y formateo de tu código.
// .vscode/settings.json
{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
Para consolidar la información presentada, se resume a continuación los pasos fundamentales acompañados de sus respectivas acciones:
| Fase | Acción | Comando / Archivo |
|---|---|---|
| Creación de Proyecto | Inicializar proyecto con Vite y Vue 3 + TypeScript | npm create vite@latest mi-proyecto-vue -- --template vue-ts |
| Instalación Inicial | Instalar dependencias básicas | npm install |
| Configuración de Rutas y Estado | Instalar y configurar Vue Router y Pinia | npm install vue-router@4 pinia |
| Integración de Tailwind | Instalar y configurar Tailwind CSS | npm install -D tailwindcss postcss autoprefixer |
| Linting y Formateo | Instalar ESLint y Prettier y configurar reglas | npm install -D eslint prettier ... |
Es vital mantener un proyecto organizado, especialmente cuando se utilizan múltiples tecnologías. Se recomienda tener una estructura clara de directorios, con carpetas dedicadas para componentes, vistas, rutas, tiendas, y activos (como CSS y recursos estáticos). Esta organización no solo facilita la mantenibilidad, sino que también mejora la escalabilidad del proyecto.
Aprovechar TypeScript en tu proyecto garantiza un tipado estricto, lo que reduce la probabilidad de errores en tiempo de ejecución. La integración inicial de la plantilla de TypeScript en Vite permite utilizar las ventajas del autocompletado y la verificación de tipos, mejorando la experiencia de desarrollo y permitiendo la evolución del código a medida que el proyecto crece.
La combinación de ESLint y Prettier asegura que el código se mantenga limpio, consistente y libre de errores comunes. Estas herramientas ayudan a mantener un formato homogéneo en el equipo de desarrollo, evitando discrepancias en el estilo del código. Es recomendable integrarlas en el flujo de trabajo del editor, permitiendo la corrección automática en cada guardado.
Vue Router y Pinia son fundamentales para aplicaciones Vue modernas. Vue Router proporciona rutas declarativas para una navegación sencilla y limpia, mientras que Pinia ofrece una alternativa moderna a Vuex para la gestión del estado, con una sintaxis más amigable y menor complejidad. La configuración modular de estos sistemas permite una fácil ampliación y mantenimiento del proyecto.
Esta guía detallada te proporciona una serie de pasos claros y estructurados para configurar un proyecto con un stack tecnológico moderno basado en Vue 3, Vite, TypeScript, Tailwind CSS, Pinia, Vue Router, ESLint y Prettier. Al seguir estos pasos, asegurarás una buena base para el desarrollo de aplicaciones web robustas, escalables y de alta calidad. La integración de herramientas como Tailwind CSS permite un desarrollo rápido de interfaces, mientras que ESLint y Prettier contribuyen a mantener un código limpio y profesional. Además, la modularidad proporcionada por Vue Router y Pinia facilita la organización del proyecto a medida que crece en complejidad.
Cada fase del proceso, desde la inicialización del proyecto con Vite hasta la configuración final de herramientas de linting y formateo, está diseñada para mejorar la eficiencia y la calidad del desarrollo. Se recomienda revisar cada archivo de configuración y ajustar las reglas según las necesidades específicas de tu proyecto y el equipo de desarrollo. Con esta estructura, estarás bien equipado para enfrentar los retos del desarrollo moderno en el ecosistema de Vue.